@oomol-lab/open-connector 1.9.2 → 1.9.3

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 (486) hide show
  1. package/README.md +4 -2
  2. package/assets/open-connector/catalog/apps/allratestoday.json +174 -0
  3. package/assets/open-connector/catalog/apps/slackbot.json +20 -1
  4. package/assets/open-connector/catalog/apps-index.json +1 -1
  5. package/package.json +1 -1
  6. package/src/connection-error.d.ts +7 -0
  7. package/src/connection-error.js +10 -0
  8. package/src/connection-service.d.ts +2 -50
  9. package/src/connection-service.js +6 -130
  10. package/src/connection-store.d.ts +41 -0
  11. package/src/connection-store.js +1 -0
  12. package/src/core/guarded-fetch.d.ts +3 -0
  13. package/src/core/guarded-fetch.js +8 -1
  14. package/src/core/provider-network-policy.d.ts +15 -0
  15. package/src/core/provider-network-policy.js +11 -0
  16. package/src/core/request.d.ts +18 -14
  17. package/src/core/request.js +11 -35
  18. package/src/credential-resolver.d.ts +24 -0
  19. package/src/credential-resolver.js +131 -0
  20. package/src/mcp.js +1 -1
  21. package/src/oauth/oauth-client-config-service.d.ts +1 -1
  22. package/src/oauth/oauth-client-config-service.js +14 -2
  23. package/src/oauth/oauth-credential-refresh-service.js +1 -1
  24. package/src/oauth/oauth-flow-service.d.ts +9 -1
  25. package/src/oauth/oauth-flow-service.js +11 -1
  26. package/src/providers/abuseipdb/executors.js +3 -4
  27. package/src/providers/action-contracts.generated.d.ts +1 -0
  28. package/src/providers/addressfinder/executors.js +2 -3
  29. package/src/providers/aeroleads/executors.js +3 -3
  30. package/src/providers/affinity/runtime.js +6 -7
  31. package/src/providers/aftership/executors.js +2 -2
  32. package/src/providers/agent_mail/runtime.js +2 -2
  33. package/src/providers/agentql/runtime.js +2 -2
  34. package/src/providers/agenty/runtime.js +5 -6
  35. package/src/providers/agiled/runtime.d.ts +0 -1
  36. package/src/providers/agiled/runtime.js +2 -3
  37. package/src/providers/agility/runtime.js +2 -3
  38. package/src/providers/ahrefs/runtime.js +3 -3
  39. package/src/providers/aifinmarket/runtime.js +6 -7
  40. package/src/providers/airtable/executors.js +3 -3
  41. package/src/providers/alchemy/runtime.js +2 -2
  42. package/src/providers/algolia/runtime.js +3 -3
  43. package/src/providers/aliyun_oss/executors.js +7 -7
  44. package/src/providers/allratestoday/executors.d.ts +3 -0
  45. package/src/providers/allratestoday/executors.js +18 -0
  46. package/src/providers/allratestoday/runtime.d.ts +17 -0
  47. package/src/providers/allratestoday/runtime.js +104 -0
  48. package/src/providers/alpaca/runtime.js +2 -3
  49. package/src/providers/alpha_vantage/runtime.js +2 -2
  50. package/src/providers/alt_text_ai/runtime.js +2 -2
  51. package/src/providers/altiria/executors.js +3 -3
  52. package/src/providers/amap/runtime.js +3 -3
  53. package/src/providers/ambee/runtime.js +2 -2
  54. package/src/providers/ambivo/executors.js +3 -3
  55. package/src/providers/amilia/runtime.js +1 -1
  56. package/src/providers/amplemarket/runtime.js +2 -2
  57. package/src/providers/amplitude/runtime.js +3 -3
  58. package/src/providers/anysearch/runtime.js +4 -4
  59. package/src/providers/apaleo/runtime.js +2 -2
  60. package/src/providers/api_sports/executors.js +3 -4
  61. package/src/providers/apiverve/executors.js +2 -3
  62. package/src/providers/apollo/executors.js +2 -3
  63. package/src/providers/appcircle/runtime.js +5 -5
  64. package/src/providers/appdrag/executors.js +2 -3
  65. package/src/providers/arcgis_online/executors.js +2 -2
  66. package/src/providers/auth0_management/runtime.js +2 -3
  67. package/src/providers/autoblogger/executors.js +3 -3
  68. package/src/providers/baidu_maps/runtime.js +3 -3
  69. package/src/providers/baidu_netdisk/runtime-mcp.js +3 -4
  70. package/src/providers/bark/executors.js +5 -5
  71. package/src/providers/bitrise/runtime.js +3 -3
  72. package/src/providers/bouncer/executors.js +3 -4
  73. package/src/providers/browse_ai/runtime.js +3 -4
  74. package/src/providers/browserstack/executors.js +6 -7
  75. package/src/providers/buildkite/runtime.js +3 -3
  76. package/src/providers/bunnycdn/runtime.js +3 -3
  77. package/src/providers/businessmap/runtime.js +6 -7
  78. package/src/providers/buttondown/runtime.js +2 -2
  79. package/src/providers/byteforms/runtime.js +2 -2
  80. package/src/providers/calendly/runtime.js +2 -2
  81. package/src/providers/captainbi/runtime.js +6 -6
  82. package/src/providers/castingwords/runtime.js +1 -1
  83. package/src/providers/chatpdf/runtime.js +4 -4
  84. package/src/providers/check/executors.js +3 -4
  85. package/src/providers/checkly/executors.js +3 -4
  86. package/src/providers/chengxin/runtime.js +3 -3
  87. package/src/providers/cincopa/executors.js +3 -4
  88. package/src/providers/circle/executors.js +3 -4
  89. package/src/providers/clearout/executors.js +1 -2
  90. package/src/providers/clickhelp/runtime.js +5 -5
  91. package/src/providers/clickhouse/runtime.js +4 -4
  92. package/src/providers/clinicalkey/runtime.js +3 -3
  93. package/src/providers/clinicaltrials_gov/runtime.js +4 -5
  94. package/src/providers/clockify/runtime.js +4 -4
  95. package/src/providers/close/runtime.js +3 -3
  96. package/src/providers/cloudconvert/runtime.js +8 -9
  97. package/src/providers/cloudflare_dns/runtime.js +2 -2
  98. package/src/providers/cloudflare_email_routing/runtime.js +2 -2
  99. package/src/providers/cloudflare_r2/runtime.js +5 -5
  100. package/src/providers/cloudflare_worker/runtime.js +10 -10
  101. package/src/providers/cloudinary/runtime.js +4 -4
  102. package/src/providers/cloudlayer/runtime.js +5 -5
  103. package/src/providers/codacy/runtime.js +2 -2
  104. package/src/providers/codemagic/runtime.js +2 -2
  105. package/src/providers/confluence/executors.js +4 -4
  106. package/src/providers/confluence/runtime.d.ts +0 -1
  107. package/src/providers/confluence/runtime.js +6 -7
  108. package/src/providers/contactout/runtime.js +5 -5
  109. package/src/providers/contentful/runtime.js +2 -2
  110. package/src/providers/contentstack_content_delivery/runtime.js +1 -1
  111. package/src/providers/cronly/runtime.js +2 -2
  112. package/src/providers/crossref/runtime.js +3 -3
  113. package/src/providers/cutt_ly/runtime.js +3 -3
  114. package/src/providers/cyberimpact/runtime.js +3 -3
  115. package/src/providers/dachser/executors.js +2 -2
  116. package/src/providers/dailybot/runtime.js +1 -1
  117. package/src/providers/databox/runtime.js +2 -2
  118. package/src/providers/databricks/runtime.js +2 -2
  119. package/src/providers/datacite/runtime.js +1 -1
  120. package/src/providers/datadog/executors.js +3 -4
  121. package/src/providers/datascope/runtime.js +2 -2
  122. package/src/providers/daytona/executors.js +3 -3
  123. package/src/providers/deepgram/runtime.js +2 -2
  124. package/src/providers/deepl/runtime.js +4 -4
  125. package/src/providers/detrack/executors.js +5 -5
  126. package/src/providers/deutschlandgpt/runtime.js +2 -2
  127. package/src/providers/dialmycalls/runtime.js +4 -4
  128. package/src/providers/diffbot/executors.js +4 -4
  129. package/src/providers/digistore24/executors.js +3 -3
  130. package/src/providers/dingtalk_bot/executors.js +1 -1
  131. package/src/providers/discourse/executors.d.ts +0 -1
  132. package/src/providers/discourse/executors.js +6 -7
  133. package/src/providers/docugenerate/runtime.js +3 -3
  134. package/src/providers/doppler/runtime.shared.js +3 -3
  135. package/src/providers/doppler_marketing_automation/runtime.js +4 -4
  136. package/src/providers/dovetail/runtime.js +2 -2
  137. package/src/providers/dropcontact/runtime.js +3 -3
  138. package/src/providers/dub/executors.js +6 -6
  139. package/src/providers/dumplingai/runtime.js +2 -2
  140. package/src/providers/elevenlabs/executors.js +4 -4
  141. package/src/providers/elevenreader/runtime.js +1 -1
  142. package/src/providers/emailoctopus/runtime.js +4 -4
  143. package/src/providers/embase/runtime.js +3 -3
  144. package/src/providers/emelia/executors.js +2 -2
  145. package/src/providers/enigma/executors.js +3 -3
  146. package/src/providers/eodhd_apis/executors.js +2 -2
  147. package/src/providers/eventzilla/runtime.js +3 -4
  148. package/src/providers/evervault/runtime.js +1 -1
  149. package/src/providers/excalidraw_mcp/runtime.js +3 -4
  150. package/src/providers/excel/runtime.js +6 -6
  151. package/src/providers/expofp/runtime.js +2 -2
  152. package/src/providers/faktoora/runtime.js +5 -5
  153. package/src/providers/fast_note_sync/runtime.js +2 -2
  154. package/src/providers/feathery/executors.js +2 -3
  155. package/src/providers/feishu_app_bot/executors.js +2 -3
  156. package/src/providers/feishu_custom_bot/executors.js +2 -3
  157. package/src/providers/ffhub/executors.js +2 -3
  158. package/src/providers/fidel_api/executors.js +2 -3
  159. package/src/providers/files_com/executors.js +2 -3
  160. package/src/providers/fireberry/runtime.d.ts +0 -1
  161. package/src/providers/fireberry/runtime.js +3 -4
  162. package/src/providers/firehydrant/executors.js +2 -3
  163. package/src/providers/float/executors.js +2 -3
  164. package/src/providers/flomo/executors.js +5 -6
  165. package/src/providers/flowiseai/executors.js +2 -3
  166. package/src/providers/fluxguard/executors.js +2 -3
  167. package/src/providers/folk/executors.js +2 -3
  168. package/src/providers/football_data/executors.js +2 -3
  169. package/src/providers/forem/executors.js +2 -3
  170. package/src/providers/formbricks/executors.js +2 -3
  171. package/src/providers/formsite/executors.js +3 -4
  172. package/src/providers/formspree/executors.js +2 -2
  173. package/src/providers/freshdesk/executors.js +3 -4
  174. package/src/providers/freshservice/executors.js +3 -4
  175. package/src/providers/freshteam/runtime.js +3 -4
  176. package/src/providers/full_contact/executors.js +3 -3
  177. package/src/providers/fusion-api/runtime.js +2 -3
  178. package/src/providers/gagelist/executors.js +3 -3
  179. package/src/providers/gainsight_nxt/executors.js +2 -2
  180. package/src/providers/gamma/executors.js +4 -3
  181. package/src/providers/gangtise/runtime.js +3 -4
  182. package/src/providers/gatherup/runtime.js +1 -1
  183. package/src/providers/geckoboard/executors.js +2 -3
  184. package/src/providers/gemini/runtime.d.ts +0 -1
  185. package/src/providers/gemini/runtime.js +5 -6
  186. package/src/providers/genpage/runtime.js +2 -2
  187. package/src/providers/geokeo/executors.js +4 -4
  188. package/src/providers/getnote/runtime.js +2 -3
  189. package/src/providers/github/runtime-shared.js +2 -2
  190. package/src/providers/glyphic/runtime.js +3 -4
  191. package/src/providers/gmail/executors.js +125 -27
  192. package/src/providers/gong/runtime.js +6 -7
  193. package/src/providers/googlecalendar/runtime-shared.js +3 -4
  194. package/src/providers/googledrive/runtime-request.js +2 -3
  195. package/src/providers/googlesheets/runtime-shared.js +3 -4
  196. package/src/providers/gorgias/runtime.js +4 -4
  197. package/src/providers/gotify/executors.js +7 -8
  198. package/src/providers/greenhouse/executors.js +3 -3
  199. package/src/providers/gumloop/executors.js +2 -3
  200. package/src/providers/gumroad/executors.js +2 -3
  201. package/src/providers/habitica/executors.js +2 -3
  202. package/src/providers/hackerrank_work/executors.js +2 -3
  203. package/src/providers/harvest/executors.js +3 -4
  204. package/src/providers/haveibeenpwned/executors.js +2 -3
  205. package/src/providers/headout/executors.js +3 -4
  206. package/src/providers/healthchecks_io/executors.js +2 -3
  207. package/src/providers/helium10/runtime.js +4 -5
  208. package/src/providers/helpdesk/runtime.js +4 -4
  209. package/src/providers/home_assistant/runtime-ws.js +9 -10
  210. package/src/providers/hotjar/executors.js +4 -4
  211. package/src/providers/httpsms/runtime.js +3 -4
  212. package/src/providers/hub_planner/executors.js +3 -3
  213. package/src/providers/hubspot/runtime.js +3 -4
  214. package/src/providers/humaans/runtime.js +3 -3
  215. package/src/providers/hunter/runtime.js +3 -3
  216. package/src/providers/icypeas/executors.js +3 -4
  217. package/src/providers/ima/runtime.js +7 -7
  218. package/src/providers/infolobby/runtime.js +6 -6
  219. package/src/providers/instabot/runtime.js +6 -6
  220. package/src/providers/instatus/runtime.js +4 -4
  221. package/src/providers/intuiface/executors.js +3 -3
  222. package/src/providers/iplocate/runtime.js +4 -5
  223. package/src/providers/ipregistry/executors.js +2 -2
  224. package/src/providers/jiminny/runtime.js +4 -4
  225. package/src/providers/jin10/executors.js +4 -5
  226. package/src/providers/jira/executors.js +4 -4
  227. package/src/providers/kaleido/runtime.js +2 -2
  228. package/src/providers/kandji/runtime.js +2 -2
  229. package/src/providers/keygen/executors.js +4 -4
  230. package/src/providers/keyword/runtime.js +2 -2
  231. package/src/providers/kie_ai/executors.js +1 -1
  232. package/src/providers/kintone/runtime.js +1 -1
  233. package/src/providers/kit/runtime.js +2 -2
  234. package/src/providers/klangio/runtime.js +4 -4
  235. package/src/providers/klaviyo/executors.js +1 -1
  236. package/src/providers/klazify/executors.js +3 -3
  237. package/src/providers/klipfolio/runtime.js +3 -3
  238. package/src/providers/knack/executors.js +1 -1
  239. package/src/providers/kommo/runtime.js +2 -2
  240. package/src/providers/kontent_ai/executors.js +3 -4
  241. package/src/providers/l2s/executors.js +3 -4
  242. package/src/providers/latchshot/executors.js +2 -2
  243. package/src/providers/leadboxer/runtime.js +4 -4
  244. package/src/providers/leadiq/runtime.js +4 -4
  245. package/src/providers/linguapop/runtime.js +1 -1
  246. package/src/providers/lingvanex_translation_api/runtime.js +5 -6
  247. package/src/providers/lingxing_mcp/runtime.js +3 -4
  248. package/src/providers/linkup/runtime.js +5 -6
  249. package/src/providers/liveagent/executors.js +6 -6
  250. package/src/providers/loops/executors.js +2 -2
  251. package/src/providers/loyjoy/runtime.js +2 -2
  252. package/src/providers/loyverse/executors.js +4 -4
  253. package/src/providers/lusha/runtime.js +3 -3
  254. package/src/providers/mailbluster/runtime.js +3 -4
  255. package/src/providers/mailcoach/runtime.js +4 -4
  256. package/src/providers/mailgenius/executors.js +3 -4
  257. package/src/providers/mailjet/runtime.js +3 -3
  258. package/src/providers/mails_so/runtime.js +1 -1
  259. package/src/providers/mailsoftly/runtime.js +5 -5
  260. package/src/providers/mailtrap/runtime.js +4 -5
  261. package/src/providers/manus/runtime.js +3 -3
  262. package/src/providers/mautic/runtime.js +3 -3
  263. package/src/providers/megaventory/runtime.js +3 -3
  264. package/src/providers/memberstack/runtime.js +2 -2
  265. package/src/providers/mendeley/executors.js +2 -3
  266. package/src/providers/mindbody/runtime.js +3 -3
  267. package/src/providers/minerstat/executors.js +3 -3
  268. package/src/providers/mintlify/runtime.js +3 -3
  269. package/src/providers/missive/executors.js +3 -5
  270. package/src/providers/mixpanel/executors.js +3 -3
  271. package/src/providers/mobile_text_alerts/runtime.js +3 -3
  272. package/src/providers/mocean/executors.js +3 -3
  273. package/src/providers/moco/executors.js +5 -5
  274. package/src/providers/moesif/runtime.js +4 -4
  275. package/src/providers/monday/runtime-common.js +3 -3
  276. package/src/providers/monica_crm/runtime.js +4 -4
  277. package/src/providers/moorcheh/runtime.js +3 -3
  278. package/src/providers/more_trees/runtime.d.ts +0 -1
  279. package/src/providers/more_trees/runtime.js +7 -8
  280. package/src/providers/moxie/runtime.js +2 -2
  281. package/src/providers/msg91/runtime.js +4 -4
  282. package/src/providers/mx/runtime.js +1 -1
  283. package/src/providers/needle/runtime.js +3 -4
  284. package/src/providers/netlify/runtime.js +2 -3
  285. package/src/providers/niftyimages/executors.js +2 -2
  286. package/src/providers/northbeam/runtime.js +1 -1
  287. package/src/providers/nozbe_teams/executors.js +4 -4
  288. package/src/providers/npm/runtime.js +4 -4
  289. package/src/providers/nusii_proposals/runtime.js +2 -2
  290. package/src/providers/ocr_web_service/executors.js +4 -4
  291. package/src/providers/octopus_deploy/executors.js +3 -3
  292. package/src/providers/oksign/runtime.js +3 -4
  293. package/src/providers/one_drive/executors.js +6 -6
  294. package/src/providers/one_password_events/runtime.js +1 -1
  295. package/src/providers/onfleet/runtime.js +3 -3
  296. package/src/providers/onlyoffice_docspace/runtime.js +4 -4
  297. package/src/providers/oomnitza/runtime.js +3 -4
  298. package/src/providers/otter_ai/executors.js +2 -2
  299. package/src/providers/oura/runtime.js +1 -1
  300. package/src/providers/paddle/executors.js +3 -3
  301. package/src/providers/pagerduty/runtime.js +2 -2
  302. package/src/providers/paradym/runtime.js +4 -4
  303. package/src/providers/parallel/runtime.js +3 -3
  304. package/src/providers/partner_stack_partner/runtime.js +1 -1
  305. package/src/providers/payrexx/runtime.js +5 -6
  306. package/src/providers/permit_io/runtime.js +2 -2
  307. package/src/providers/pinboard/executors.js +5 -6
  308. package/src/providers/pinpoint/runtime.js +2 -2
  309. package/src/providers/placid/runtime.js +3 -3
  310. package/src/providers/plain/runtime.js +5 -5
  311. package/src/providers/planetscale/runtime.js +2 -2
  312. package/src/providers/planhat/executors.js +6 -6
  313. package/src/providers/plausible_analytics/runtime.js +3 -3
  314. package/src/providers/posthog/runtime.js +3 -3
  315. package/src/providers/predis_ai/executors.js +3 -3
  316. package/src/providers/printavo/runtime.js +2 -2
  317. package/src/providers/prospeo/runtime.js +2 -3
  318. package/src/providers/provider-runtime.d.ts +13 -1
  319. package/src/providers/provider-runtime.js +25 -10
  320. package/src/providers/push_by_techulus/executors.js +3 -4
  321. package/src/providers/pushover/runtime.js +4 -5
  322. package/src/providers/pushsafer/runtime.js +4 -5
  323. package/src/providers/pylon/runtime.js +2 -2
  324. package/src/providers/qase/runtime.js +3 -3
  325. package/src/providers/qdrant/runtime.js +1 -1
  326. package/src/providers/qichacha/runtime.js +2 -2
  327. package/src/providers/qingflow/runtime.js +2 -2
  328. package/src/providers/quickchart/runtime.js +2 -2
  329. package/src/providers/quintadb/runtime.js +2 -2
  330. package/src/providers/quo/runtime.js +2 -2
  331. package/src/providers/rawg/runtime.js +4 -4
  332. package/src/providers/razorpay/runtime.js +4 -5
  333. package/src/providers/readme/runtime.js +6 -6
  334. package/src/providers/referralhero/runtime.js +3 -3
  335. package/src/providers/registry.generated.js +1 -0
  336. package/src/providers/render/executors.js +3 -3
  337. package/src/providers/respond_io/executors.js +3 -3
  338. package/src/providers/reversecontact/runtime.js +3 -3
  339. package/src/providers/ritekit/executors.js +2 -2
  340. package/src/providers/riveter/executors.js +2 -3
  341. package/src/providers/rocket_chat/executors.js +3 -4
  342. package/src/providers/rocket_reach/executors.js +3 -4
  343. package/src/providers/saucelabs/runtime.js +4 -4
  344. package/src/providers/scopus/runtime.js +3 -3
  345. package/src/providers/scrape_do/executors.js +2 -2
  346. package/src/providers/scraperapi/runtime.js +4 -4
  347. package/src/providers/scrapfly/executors.js +2 -2
  348. package/src/providers/scrapingant/executors.js +6 -7
  349. package/src/providers/scrapingbee/executors.js +3 -3
  350. package/src/providers/scrapingdog/executors.js +1 -1
  351. package/src/providers/screenshot_fyi/executors.js +3 -4
  352. package/src/providers/screenshotbase/runtime.js +3 -3
  353. package/src/providers/search_api/runtime.js +2 -2
  354. package/src/providers/securitytrails/executors.js +2 -2
  355. package/src/providers/semantic_scholar/executors.js +2 -2
  356. package/src/providers/sendbird/executors.js +2 -2
  357. package/src/providers/sendfox/executors.js +3 -3
  358. package/src/providers/sendgrid/executors.js +5 -5
  359. package/src/providers/sendmator/runtime.js +3 -4
  360. package/src/providers/seqera/runtime.js +3 -4
  361. package/src/providers/serveravatar/executors.js +3 -3
  362. package/src/providers/sheetdb/runtime.js +2 -2
  363. package/src/providers/short_menu/runtime.js +3 -3
  364. package/src/providers/shortcut/runtime.js +3 -3
  365. package/src/providers/shortpixel/runtime.js +2 -2
  366. package/src/providers/shotstack/runtime.js +4 -4
  367. package/src/providers/signpath/runtime.js +2 -2
  368. package/src/providers/signwell/runtime.js +5 -6
  369. package/src/providers/similarweb_digitalrank_api/runtime.js +3 -3
  370. package/src/providers/simla/runtime.js +5 -5
  371. package/src/providers/simplybook_me/executors.js +6 -6
  372. package/src/providers/sitespeakai/runtime.js +3 -3
  373. package/src/providers/slickdeals/runtime.js +2 -3
  374. package/src/providers/smartsuite/runtime.js +3 -3
  375. package/src/providers/sonarcloud/runtime.js +5 -5
  376. package/src/providers/sorftime/runtime.js +8 -8
  377. package/src/providers/spider/runtime.js +2 -2
  378. package/src/providers/splunk_http_event_collector/runtime.js +7 -8
  379. package/src/providers/sportsdata/runtime.js +4 -4
  380. package/src/providers/spyfu/runtime.js +4 -5
  381. package/src/providers/square/runtime.js +4 -4
  382. package/src/providers/stannp/runtime.js +2 -2
  383. package/src/providers/stripe/executors.js +2 -2
  384. package/src/providers/supermemory/runtime.js +3 -3
  385. package/src/providers/survey_monkey/runtime.js +3 -3
  386. package/src/providers/taiga/runtime.js +4 -4
  387. package/src/providers/talenox/executors.js +4 -4
  388. package/src/providers/tally/runtime.js +3 -3
  389. package/src/providers/tavily/runtime.js +3 -4
  390. package/src/providers/teamcamp/executors.js +2 -2
  391. package/src/providers/teamtailor/executors.js +2 -2
  392. package/src/providers/telegram/executors.js +6 -7
  393. package/src/providers/teltel/executors.js +2 -2
  394. package/src/providers/templated/executors.js +3 -3
  395. package/src/providers/tencent_docs/runtime.js +4 -4
  396. package/src/providers/tencent_maps/runtime.js +3 -3
  397. package/src/providers/textcortex/runtime.js +3 -3
  398. package/src/providers/the_cat_api/runtime.js +3 -3
  399. package/src/providers/the_colony/runtime.js +3 -3
  400. package/src/providers/the_odds_api/runtime.js +3 -4
  401. package/src/providers/the_official_board/runtime.js +4 -4
  402. package/src/providers/thehive/runtime.js +1 -1
  403. package/src/providers/tikhub/endpoint-catalog.js +2 -3
  404. package/src/providers/tiktok_business/runtime.js +2 -2
  405. package/src/providers/timecamp/runtime.js +2 -2
  406. package/src/providers/timelink/runtime.js +2 -2
  407. package/src/providers/totp/runtime.js +4 -5
  408. package/src/providers/trawlingweb/runtime.js +2 -2
  409. package/src/providers/trilium/runtime.js +2 -2
  410. package/src/providers/triple_whale/runtime.js +3 -3
  411. package/src/providers/truvera/runtime.js +2 -2
  412. package/src/providers/tuskr/runtime.js +2 -2
  413. package/src/providers/typebot/runtime.js +2 -2
  414. package/src/providers/typeform/runtime.js +2 -2
  415. package/src/providers/uptimerobot/executors.js +3 -4
  416. package/src/providers/v2ex/runtime.js +8 -9
  417. package/src/providers/valyu/runtime.js +3 -3
  418. package/src/providers/vapi/runtime.js +4 -4
  419. package/src/providers/vectorshift/runtime.js +3 -3
  420. package/src/providers/venafitlsprotectcloud/runtime.js +2 -3
  421. package/src/providers/venafitlsprotectdatacenter/runtime.js +2 -3
  422. package/src/providers/vida/runtime.js +4 -4
  423. package/src/providers/vonage/runtime.js +3 -3
  424. package/src/providers/walmart_marketplace/runtime.js +5 -5
  425. package/src/providers/weatherapi/executors.js +3 -4
  426. package/src/providers/web_of_science/runtime.js +4 -4
  427. package/src/providers/web_of_science_expanded/runtime.js +9 -9
  428. package/src/providers/webex/runtime.js +3 -3
  429. package/src/providers/webinarjam/runtime.js +4 -4
  430. package/src/providers/webscraping_ai/runtime.js +3 -3
  431. package/src/providers/webvizio/runtime.js +3 -4
  432. package/src/providers/wecom_bot/smart-runtime.js +4 -5
  433. package/src/providers/wecom_mcp/runtime.js +3 -4
  434. package/src/providers/wejam_ai/runtime.js +3 -3
  435. package/src/providers/wolfram_alpha_api/runtime.js +3 -3
  436. package/src/providers/woocommerce/runtime.js +1 -1
  437. package/src/providers/woodpecker_co/executors.js +3 -4
  438. package/src/providers/woot/runtime.js +6 -6
  439. package/src/providers/workable/runtime.js +3 -3
  440. package/src/providers/workday/runtime.js +4 -4
  441. package/src/providers/workiom/runtime.js +2 -2
  442. package/src/providers/workiz/runtime.js +2 -2
  443. package/src/providers/workpath/executors.js +3 -4
  444. package/src/providers/worksnaps/executors.js +2 -2
  445. package/src/providers/y_gy/runtime.js +2 -2
  446. package/src/providers/zenscrape/runtime.js +3 -3
  447. package/src/providers/zep/runtime.js +4 -4
  448. package/src/providers/zeplin/runtime.js +2 -2
  449. package/src/providers/zhihu/executors.js +6 -6
  450. package/src/providers/zylvie/runtime.js +4 -4
  451. package/src/saas/saas-cleanup-service.d.ts +2 -0
  452. package/src/saas/saas-cleanup-service.js +2 -1
  453. package/src/saas/saas-execution-service.d.ts +1 -1
  454. package/src/server/actions/action-runner.js +1 -1
  455. package/src/server/api/auth.js +3 -0
  456. package/src/server/api/connection-routes.js +1 -1
  457. package/src/server/api/console-catalog-routes.js +1 -1
  458. package/src/server/api/console-oauth-routes.d.ts +3 -1
  459. package/src/server/api/console-oauth-routes.js +22 -9
  460. package/src/server/api/oauth-completion-page.d.ts +57 -0
  461. package/src/server/api/oauth-completion-page.js +135 -10
  462. package/src/server/api/openapi.d.ts +5 -0
  463. package/src/server/api/openapi.js +62 -2
  464. package/src/server/api/runtime-api.d.ts +2 -1
  465. package/src/server/api/runtime-app-routes.js +1 -1
  466. package/src/server/api/runtime-execution-routes.js +2 -1
  467. package/src/server/connect-app.d.ts +4 -0
  468. package/src/server/connect-app.js +14 -1
  469. package/src/server/connect-server.d.ts +6 -0
  470. package/src/server/connect-server.js +114 -4
  471. package/src/server/connector-runtime.d.ts +6 -8
  472. package/src/server/connector-runtime.js +8 -28
  473. package/src/server/proxy/proxy-runner.js +1 -1
  474. package/src/server/slack-event-verification.d.ts +37 -0
  475. package/src/server/slack-event-verification.js +91 -0
  476. package/src/server/storage/connection-request-store.d.ts +1 -1
  477. package/src/server/storage/connection-store.d.ts +1 -1
  478. package/src/server/storage/postgres/runtime-store.d.ts +1 -1
  479. package/src/server/storage/runtime-database.d.ts +1 -1
  480. package/src/server/storage/saas-project-store.d.ts +1 -1
  481. package/src/triggers/maintenance.d.ts +2 -0
  482. package/src/triggers/maintenance.js +2 -1
  483. package/src/triggers/sources/slack-signature.d.ts +10 -0
  484. package/src/triggers/sources/slack-signature.js +13 -0
  485. package/src/triggers/sources/slack.js +9 -11
  486. package/src/triggers/trigger-runner.js +1 -1
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { basicAuthorizationHeader, createProviderTimeout, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
2
+ import { basicAuthorizationHeader, createProviderTimeout, ProviderRequestError, providerUserAgent, providerInputError, } from "../provider-runtime.js";
3
3
  import { createHash } from "node:crypto";
4
4
  const clickhelpRequestTimeoutMs = 60_000;
5
5
  export const clickhelpActionHandlers = {
@@ -186,10 +186,10 @@ export function normalizeClickhelpApiBaseUrl(value) {
186
186
  }
187
187
  }
188
188
  function resolveActionCredential(input) {
189
- return resolveClickhelpCredential(requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)), input.providerMetadata?.login ?? input.values?.login, input.providerMetadata?.apiBaseUrl ?? input.values?.portalUrl);
189
+ return resolveClickhelpCredential(requiredString(input.apiKey, "apiKey", providerInputError), input.providerMetadata?.login ?? input.values?.login, input.providerMetadata?.apiBaseUrl ?? input.values?.portalUrl);
190
190
  }
191
191
  function resolveClickhelpCredential(apiKeyInput, loginInput, portalUrlInput) {
192
- const apiKey = requiredString(apiKeyInput, "apiKey", (message) => new ProviderRequestError(400, message)).trim();
192
+ const apiKey = requiredString(apiKeyInput, "apiKey", providerInputError).trim();
193
193
  if (!apiKey) {
194
194
  throw new ProviderRequestError(400, "apiKey is required");
195
195
  }
@@ -203,13 +203,13 @@ function resolveClickhelpCredential(apiKeyInput, loginInput, portalUrlInput) {
203
203
  }
204
204
  function mapClickhelpError(status, message, phase) {
205
205
  if (phase === "validate" && (status === 401 || status === 403 || status === 404)) {
206
- return new ProviderRequestError(400, message);
206
+ return providerInputError(message);
207
207
  }
208
208
  if (phase === "execute" && status === 401) {
209
209
  return new ProviderRequestError(401, message);
210
210
  }
211
211
  if ([400, 403, 404, 409, 422].includes(status)) {
212
- return new ProviderRequestError(400, message);
212
+ return providerInputError(message);
213
213
  }
214
214
  if (status === 429) {
215
215
  return new ProviderRequestError(429, message);
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalInteger, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
3
3
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
4
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
4
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
5
5
  const clickhouseDefaultDatabase = "default";
6
6
  const clickhouseValidationQuery = "SELECT currentDatabase() AS database, version() AS version";
7
7
  export const clickhouseActionHandlers = {
@@ -363,10 +363,10 @@ function parseClickhouseJson(text) {
363
363
  function createClickhouseError(status, responseText, phase) {
364
364
  const message = responseText.trim() || `ClickHouse request failed with ${status}`;
365
365
  if (phase === "validate" && [400, 401, 403].includes(status)) {
366
- return new ProviderRequestError(400, message);
366
+ return providerInputError(message);
367
367
  }
368
368
  if ([400, 404, 422].includes(status)) {
369
- return new ProviderRequestError(400, message);
369
+ return providerInputError(message);
370
370
  }
371
371
  if (status === 429) {
372
372
  return new ProviderRequestError(429, message);
@@ -377,7 +377,7 @@ export function normalizeClickhouseBaseUrl(value, allowPrivateNetwork = isPrivat
377
377
  const raw = requireCredentialString(value, "baseUrl");
378
378
  const url = assertPublicHttpUrl(raw, {
379
379
  fieldName: "baseUrl",
380
- createError: (message) => new ProviderRequestError(400, message),
380
+ createError: providerInputError,
381
381
  allowPrivateNetwork,
382
382
  });
383
383
  url.hash = "";
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, } from "../provider-runtime.js";
2
+ import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, providerResponseError, } from "../provider-runtime.js";
3
3
  export const clinicalKeyApiBaseUrl = "https://api.elsevier.com/sushi/r51";
4
4
  export const clinicalKeyPlatformCode = "ck";
5
5
  export const clinicalKeyActionHandlers = {
@@ -135,7 +135,7 @@ function createClinicalKeyError(status, payload, phase) {
135
135
  return new ProviderRequestError(429, message);
136
136
  }
137
137
  if (phase === "validate" && status >= 400 && status < 500) {
138
- return new ProviderRequestError(400, message);
138
+ return providerInputError(message);
139
139
  }
140
140
  if (status === 401 || status === 403) {
141
141
  return new ProviderRequestError(401, message);
@@ -143,7 +143,7 @@ function createClinicalKeyError(status, payload, phase) {
143
143
  if (status >= 400 && status < 500) {
144
144
  return new ProviderRequestError(502, message, status);
145
145
  }
146
- return new ProviderRequestError(502, message);
146
+ return providerResponseError(message);
147
147
  }
148
148
  function extractClinicalKeyErrorMessage(payload) {
149
149
  if (typeof payload === "string") {
@@ -1,7 +1,6 @@
1
1
  import { optionalBoolean, optionalNumber } from "../../core/cast.js";
2
- import { createProviderTimeout, providerUserAgent, ProviderRequestError, requiredResponseRecord, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, providerUserAgent, ProviderRequestError, requiredResponseRecord, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const clinicalTrialsGovApiBaseUrl = "https://clinicaltrials.gov/api/v2";
4
- const requestTimeoutMs = 30_000;
5
4
  export const maxResponseBytes = 16 * 1024 * 1024;
6
5
  const maxBatchIdsPerRequest = 100;
7
6
  const maxRequestUrlBytes = 7_000;
@@ -357,7 +356,7 @@ async function requestStudyView(nctId, fields, markupFormat, fetcher) {
357
356
  async function requestStudyBatches(nctIds, fields, markupFormat, fetcher) {
358
357
  const studies = [];
359
358
  const responseBudget = { consumedBytes: 0, maxBytes: maxResponseBytes };
360
- const deadlineAt = Date.now() + requestTimeoutMs;
359
+ const deadlineAt = Date.now() + defaultProviderRequestTimeoutMs;
361
360
  for (let start = 0; start < nctIds.length; start += maxBatchIdsPerRequest) {
362
361
  const remainingTimeMs = deadlineAt - Date.now();
363
362
  if (remainingTimeMs <= 0) {
@@ -378,7 +377,7 @@ async function requestStudyBatch(nctIds, fields, markupFormat, fetcher, response
378
377
  const payload = requiredResponseRecord(await requestJson("/studies", query, fetcher, false, responseBudget, timeoutMs), "ClinicalTrials.gov batch studies response");
379
378
  return requireRecordArray(payload.studies, "ClinicalTrials.gov batch studies response studies");
380
379
  }
381
- async function requestJson(path, query, fetcher, allowNotFound = false, responseBudget, timeoutMs = requestTimeoutMs) {
380
+ async function requestJson(path, query, fetcher, allowNotFound = false, responseBudget, timeoutMs = defaultProviderRequestTimeoutMs) {
382
381
  const url = new URL(`${clinicalTrialsGovApiBaseUrl}${path}`);
383
382
  url.search = query.toString();
384
383
  assertRequestUrlWithinLimit(url);
@@ -512,7 +511,7 @@ function requestTimeoutError() {
512
511
  function mapResponseError(status, body) {
513
512
  const message = body.trim().slice(0, 4_096) || `ClinicalTrials.gov request failed with status ${status}`;
514
513
  if (status === 400 || status === 404) {
515
- return new ProviderRequestError(400, message);
514
+ return providerInputError(message);
516
515
  }
517
516
  if (status === 429) {
518
517
  return new ProviderRequestError(429, message);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
2
+ import { providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  const clockifyApiBaseUrl = "https://api.clockify.me/api/v1";
4
4
  export const clockifyActionHandlers = {
5
5
  get_current_user(input, context) {
@@ -335,16 +335,16 @@ async function readClockifyPayload(response) {
335
335
  function createClockifyError(response, payload, phase) {
336
336
  const message = readClockifyErrorMessage(payload) ?? `Clockify request failed with status ${response.status}`;
337
337
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
338
- return new ProviderRequestError(400, message);
338
+ return providerInputError(message);
339
339
  }
340
340
  if (response.status === 404) {
341
- return new ProviderRequestError(400, message);
341
+ return providerInputError(message);
342
342
  }
343
343
  if (response.status === 429) {
344
344
  return new ProviderRequestError(429, message);
345
345
  }
346
346
  if (response.status >= 500) {
347
- return new ProviderRequestError(502, message);
347
+ return providerResponseError(message);
348
348
  }
349
349
  return new ProviderRequestError(response.status, message);
350
350
  }
@@ -1,6 +1,6 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
3
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
4
4
  export const closeApiBaseUrl = "https://api.close.com/api/v1";
5
5
  export const closeActionHandlers = {
6
6
  list_leads(input, context) {
@@ -241,10 +241,10 @@ function buildCloseError(status, payload, mode) {
241
241
  optionalString(payload.message) ??
242
242
  `Close request failed with status ${status || 502}`;
243
243
  if (mode === "validation" && (status === 401 || status === 403)) {
244
- return new ProviderRequestError(400, message);
244
+ return providerInputError(message);
245
245
  }
246
246
  if (status === 400 || status === 404) {
247
- return new ProviderRequestError(400, message);
247
+ return providerInputError(message);
248
248
  }
249
249
  if (status === 429) {
250
250
  return new ProviderRequestError(429, message);
@@ -1,10 +1,9 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalIntegerLike, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
3
3
  import { assertPublicHttpUrl } from "../../core/request.js";
4
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
4
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
5
5
  const cloudconvertApiBaseUrl = "https://api.cloudconvert.com/v2";
6
6
  const cloudconvertSyncApiBaseUrl = "https://sync.api.cloudconvert.com/v2";
7
- const cloudconvertDefaultRequestTimeoutMs = 30_000;
8
7
  const cloudconvertWaitRequestTimeoutMs = 300_000;
9
8
  const cloudconvertJobTasksInclude = ["tasks"];
10
9
  const reservedConvertTaskOptionKeys = new Set([
@@ -307,7 +306,7 @@ function buildConversionTypeQuery(input) {
307
306
  function buildUrlConversionJobPayload(input) {
308
307
  const sourceUrl = assertPublicHttpUrl(requireInputString(input.sourceUrl, "sourceUrl"), {
309
308
  fieldName: "sourceUrl",
310
- createError: (message) => new ProviderRequestError(400, message),
309
+ createError: providerInputError,
311
310
  }).toString();
312
311
  const outputFormat = requireInputString(input.outputFormat, "outputFormat");
313
312
  const conversionOptions = optionalRecord(input.conversionOptions) ?? {};
@@ -449,7 +448,7 @@ async function cloudconvertFetch(input) {
449
448
  headers.set("content-type", "application/json");
450
449
  body = JSON.stringify(input.body);
451
450
  }
452
- const timeout = createProviderTimeout(input.signal, input.timeoutMs ?? cloudconvertDefaultRequestTimeoutMs);
451
+ const timeout = createProviderTimeout(input.signal, input.timeoutMs);
453
452
  try {
454
453
  return await input.fetcher(url, {
455
454
  method: input.method ?? "GET",
@@ -460,7 +459,7 @@ async function cloudconvertFetch(input) {
460
459
  }
461
460
  catch (error) {
462
461
  if (isAbortLikeError(error) && timeout.didTimeout()) {
463
- throw new ProviderRequestError(504, `CloudConvert ${input.path} request timed out after ${Math.max(1, Math.ceil((input.timeoutMs ?? cloudconvertDefaultRequestTimeoutMs) / 1000))} seconds`);
462
+ throw new ProviderRequestError(504, `CloudConvert ${input.path} request timed out after ${Math.max(1, Math.ceil((input.timeoutMs ?? defaultProviderRequestTimeoutMs) / 1000))} seconds`);
464
463
  }
465
464
  throw new ProviderRequestError(502, `CloudConvert ${input.path} request failed: ${error instanceof Error ? error.message : String(error)}`);
466
465
  }
@@ -472,13 +471,13 @@ async function toCloudconvertError(response, phase, notFoundAsInvalidInput) {
472
471
  const payload = await readCloudconvertPayload(response);
473
472
  const message = extractCloudconvertErrorMessage(payload, response.status);
474
473
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
475
- return new ProviderRequestError(400, message);
474
+ return providerInputError(message);
476
475
  }
477
476
  if (response.status === 400 || response.status === 422) {
478
- return new ProviderRequestError(400, message);
477
+ return providerInputError(message);
479
478
  }
480
479
  if (response.status === 404 && notFoundAsInvalidInput) {
481
- return new ProviderRequestError(400, message);
480
+ return providerInputError(message);
482
481
  }
483
482
  if (response.status === 429) {
484
483
  return new ProviderRequestError(429, message);
@@ -550,7 +549,7 @@ function readOptionalPositiveInteger(value, fieldName) {
550
549
  if (value == null) {
551
550
  return undefined;
552
551
  }
553
- const parsed = optionalIntegerLike(value, fieldName, (message) => new ProviderRequestError(400, message));
552
+ const parsed = optionalIntegerLike(value, fieldName, providerInputError);
554
553
  if (parsed === undefined || parsed <= 0) {
555
554
  throw new ProviderRequestError(400, `${fieldName} must be a positive integer`);
556
555
  }
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
2
  import { queryParams } from "../../core/request.js";
3
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
4
4
  import { readCloudflareCurrentUser } from "./runtime-user.js";
5
5
  const cloudflareApiBaseUrl = "https://api.cloudflare.com/client/v4";
6
6
  export const cloudflareDnsActionHandlers = {
@@ -277,7 +277,7 @@ function normalizeCloudflareError(response, envelope, phase) {
277
277
  return new ProviderRequestError(429, message);
278
278
  }
279
279
  if (phase === "validate" && [400, 401, 403, 404].includes(response.status)) {
280
- return new ProviderRequestError(400, message);
280
+ return providerInputError(message);
281
281
  }
282
282
  if (phase === "execute" && (response.status === 400 || response.status === 404)) {
283
283
  return new ProviderRequestError(response.status, message);
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
2
2
  import { queryParams } from "../../core/request.js";
3
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
4
4
  export const cloudflareEmailRoutingApiBaseUrl = "https://api.cloudflare.com/client/v4";
5
5
  export const cloudflareEmailRoutingActionHandlers = {
6
6
  list_routing_rules(input, context) {
@@ -182,7 +182,7 @@ function normalizeError(response, envelope, phase) {
182
182
  if (response.status === 429)
183
183
  return new ProviderRequestError(429, message);
184
184
  if (phase === "validate" && [400, 401, 403, 404].includes(response.status))
185
- return new ProviderRequestError(400, message);
185
+ return providerInputError(message);
186
186
  return new ProviderRequestError(response.status >= 500 ? 502 : response.status, message);
187
187
  }
188
188
  function readErrorMessage(envelope) {
@@ -1,7 +1,7 @@
1
1
  import { base64Bytes, compactObject, integer, optionalInteger, optionalRecord, optionalString, requiredRawString, requiredString, } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl, queryParams, readBoundedResponseBytes, storeResponseInTransit, } from "../../core/request.js";
3
3
  import { readCloudflareCurrentUser } from "../cloudflare_dns/runtime-user.js";
4
- import { combineProviderActionHandlers, providerFetch, providerInputError, ProviderRequestError, providerUserAgent, runProviderRequest, } from "../provider-runtime.js";
4
+ import { combineProviderActionHandlers, providerFetch, providerInputError, ProviderRequestError, providerUserAgent, runProviderRequest, providerResponseError, } from "../provider-runtime.js";
5
5
  import { cloudflareR2AccountActionHandlers } from "./runtime-account.js";
6
6
  import { cloudflareR2BucketSettingsActionHandlers } from "./runtime-bucket-settings.js";
7
7
  import { cloudflareR2DomainActionHandlers } from "./runtime-domains.js";
@@ -48,8 +48,8 @@ export const cloudflareR2ActionHandlers = combineProviderActionHandlers("cloudfl
48
48
  },
49
49
  });
50
50
  export async function validateCloudflareR2Credential(values, fetcher, signal) {
51
- const apiToken = requiredString(values.apiKey, "apiKey", (message) => new ProviderRequestError(400, message));
52
- const accountId = requiredString(values.accountId, "accountId", (message) => new ProviderRequestError(400, message));
51
+ const apiToken = requiredString(values.apiKey, "apiKey", providerInputError);
52
+ const accountId = requiredString(values.accountId, "accountId", providerInputError);
53
53
  const envelope = await cloudflareR2RequestEnvelope(apiToken, {
54
54
  path: `/accounts/${encodeURIComponent(accountId)}/r2/buckets`,
55
55
  query: { per_page: 1 },
@@ -327,7 +327,7 @@ async function downloadSourceFile(sourceUrl, signal) {
327
327
  // An upstream 401/403 is not our authorization failure, so it must not
328
328
  // pass through as this action's own status.
329
329
  const message = `failed to download sourceUrl: ${response.status} ${response.statusText}`.trim();
330
- throw response.status >= 500 ? new ProviderRequestError(502, message) : providerInputError(message);
330
+ throw response.status >= 500 ? providerResponseError(message) : providerInputError(message);
331
331
  }
332
332
  const bytes = await readBoundedResponseBytes(response, {
333
333
  maxBytes: maxSourceBytes,
@@ -558,7 +558,7 @@ function normalizeCloudflareR2Error(response, envelope, phase) {
558
558
  return new ProviderRequestError(429, message);
559
559
  }
560
560
  if (phase === "validate" && [400, 401, 403, 404].includes(response.status)) {
561
- return new ProviderRequestError(400, message);
561
+ return providerInputError(message);
562
562
  }
563
563
  if (phase === "execute" && (response.status === 400 || response.status === 404)) {
564
564
  return new ProviderRequestError(response.status, message);
@@ -1,7 +1,7 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
2
2
  import { queryParams } from "../../core/request.js";
3
3
  import { readCloudflareCurrentUser } from "../cloudflare_dns/runtime-user.js";
4
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
4
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
5
5
  const cloudflareApiBaseUrl = "https://api.cloudflare.com/client/v4";
6
6
  const defaultModuleName = "main.js";
7
7
  const defaultModuleContentType = "application/javascript+module";
@@ -83,8 +83,8 @@ export const cloudflareWorkerActionHandlers = {
83
83
  },
84
84
  };
85
85
  export async function validateCloudflareWorkerCredential(values, fetcher, signal) {
86
- const apiToken = requiredString(values.apiKey, "apiKey", (message) => new ProviderRequestError(400, message));
87
- const accountId = requiredString(values.accountId, "accountId", (message) => new ProviderRequestError(400, message));
86
+ const apiToken = requiredString(values.apiKey, "apiKey", providerInputError);
87
+ const accountId = requiredString(values.accountId, "accountId", providerInputError);
88
88
  let verificationResult;
89
89
  try {
90
90
  verificationResult = await verifyCloudflareWorkerToken(apiToken, "/user/tokens/verify", { fetcher, signal });
@@ -266,7 +266,7 @@ async function searchWorkerScripts(input, context) {
266
266
  }
267
267
  async function listBuildTriggers(input, context) {
268
268
  const accountId = resolveAccountId(input, context);
269
- const scriptTag = requiredString(input.scriptTag, "scriptTag", (message) => new ProviderRequestError(400, message));
269
+ const scriptTag = requiredString(input.scriptTag, "scriptTag", providerInputError);
270
270
  const envelope = await requestEnvelope(context, {
271
271
  path: `/accounts/${encodeURIComponent(accountId)}/builds/workers/${encodeURIComponent(scriptTag)}/triggers`,
272
272
  }, "execute");
@@ -274,7 +274,7 @@ async function listBuildTriggers(input, context) {
274
274
  }
275
275
  async function createManualBuild(input, context) {
276
276
  const accountId = resolveAccountId(input, context);
277
- const triggerUuid = requiredString(input.triggerUuid, "triggerUuid", (message) => new ProviderRequestError(400, message));
277
+ const triggerUuid = requiredString(input.triggerUuid, "triggerUuid", providerInputError);
278
278
  const branch = optionalString(input.branch);
279
279
  const commitHash = optionalString(input.commitHash);
280
280
  if (!branch && !commitHash) {
@@ -293,7 +293,7 @@ async function createManualBuild(input, context) {
293
293
  }
294
294
  async function listBuilds(input, context) {
295
295
  const accountId = resolveAccountId(input, context);
296
- const scriptTag = requiredString(input.scriptTag, "scriptTag", (message) => new ProviderRequestError(400, message));
296
+ const scriptTag = requiredString(input.scriptTag, "scriptTag", providerInputError);
297
297
  const envelope = await requestEnvelope(context, {
298
298
  path: `/accounts/${encodeURIComponent(accountId)}/builds/workers/${encodeURIComponent(scriptTag)}/builds`,
299
299
  query: {
@@ -308,13 +308,13 @@ async function listBuilds(input, context) {
308
308
  }
309
309
  async function getBuild(input, context) {
310
310
  const accountId = resolveAccountId(input, context);
311
- const buildUuid = requiredString(input.buildUuid, "buildUuid", (message) => new ProviderRequestError(400, message));
311
+ const buildUuid = requiredString(input.buildUuid, "buildUuid", providerInputError);
312
312
  const envelope = await requestEnvelope(context, { path: `/accounts/${encodeURIComponent(accountId)}/builds/builds/${encodeURIComponent(buildUuid)}` }, "execute");
313
313
  return { build: normalizeBuild(envelope.result) };
314
314
  }
315
315
  async function getBuildLogs(input, context) {
316
316
  const accountId = resolveAccountId(input, context);
317
- const buildUuid = requiredString(input.buildUuid, "buildUuid", (message) => new ProviderRequestError(400, message));
317
+ const buildUuid = requiredString(input.buildUuid, "buildUuid", providerInputError);
318
318
  const envelope = await requestEnvelope(context, {
319
319
  path: `/accounts/${encodeURIComponent(accountId)}/builds/builds/${encodeURIComponent(buildUuid)}/logs`,
320
320
  query: { cursor: optionalString(input.cursor) },
@@ -328,7 +328,7 @@ async function getBuildLogs(input, context) {
328
328
  }
329
329
  async function cancelBuild(input, context) {
330
330
  const accountId = resolveAccountId(input, context);
331
- const buildUuid = requiredString(input.buildUuid, "buildUuid", (message) => new ProviderRequestError(400, message));
331
+ const buildUuid = requiredString(input.buildUuid, "buildUuid", providerInputError);
332
332
  const envelope = await requestEnvelope(context, {
333
333
  method: "PUT",
334
334
  path: `/accounts/${encodeURIComponent(accountId)}/builds/builds/${encodeURIComponent(buildUuid)}/cancel`,
@@ -713,7 +713,7 @@ function normalizeCloudflareError(response, envelope, phase) {
713
713
  return new ProviderRequestError(429, message);
714
714
  }
715
715
  if (phase === "validate" && [400, 401, 403, 404].includes(response.status)) {
716
- return new ProviderRequestError(400, message);
716
+ return providerInputError(message);
717
717
  }
718
718
  if (phase === "execute" && (response.status === 400 || response.status === 404)) {
719
719
  return new ProviderRequestError(response.status, message);
@@ -1,6 +1,6 @@
1
1
  import { optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl } from "../../core/request.js";
3
- import { providerInputError, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
3
+ import { providerInputError, ProviderRequestError, providerUserAgent, providerResponseError, } from "../provider-runtime.js";
4
4
  const cloudinaryApiBaseUrl = "https://api.cloudinary.com/v1_1";
5
5
  export const cloudinaryActionHandlers = {
6
6
  upload_asset(input, context) {
@@ -179,7 +179,7 @@ function createCloudinaryError(status, payload, phase, fallbackMessage) {
179
179
  return new ProviderRequestError(429, message);
180
180
  }
181
181
  if (phase === "validate" && (status === 400 || status === 401 || status === 403)) {
182
- return new ProviderRequestError(400, message);
182
+ return providerInputError(message);
183
183
  }
184
184
  if (phase === "execute" && (status === 400 || status === 404 || status === 409)) {
185
185
  return new ProviderRequestError(status === 409 ? 409 : 400, message);
@@ -229,7 +229,7 @@ function normalizeCloudinaryAsset(payload) {
229
229
  }
230
230
  function readCloudinaryRecord(payload, label) {
231
231
  try {
232
- return requiredRecord(payload, label, (message) => new ProviderRequestError(502, message));
232
+ return requiredRecord(payload, label, providerResponseError);
233
233
  }
234
234
  catch {
235
235
  throw new ProviderRequestError(502, `${label} is not an object`);
@@ -255,7 +255,7 @@ function readCloudinaryUploadSource(input) {
255
255
  if (fileUrl) {
256
256
  return assertPublicHttpUrl(fileUrl, {
257
257
  fieldName: "fileUrl",
258
- createError: (message) => new ProviderRequestError(400, message),
258
+ createError: providerInputError,
259
259
  }).toString();
260
260
  }
261
261
  return fileDataUri;
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalNumber, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl } from "../../core/request.js";
3
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  const cloudlayerApiBaseUrl = "https://api.cloudlayer.io";
5
5
  const cloudlayerAccountPath = "/v2/account";
6
6
  const cloudlayerJobsPath = "/v2/jobs";
@@ -149,13 +149,13 @@ function createCloudlayerError(response, payload, phase) {
149
149
  return new ProviderRequestError(429, message);
150
150
  }
151
151
  if ((response.status === 401 || response.status === 403) && phase === "validate") {
152
- return new ProviderRequestError(400, message);
152
+ return providerInputError(message);
153
153
  }
154
154
  if (response.status === 401 || response.status === 403) {
155
155
  return new ProviderRequestError(401, message);
156
156
  }
157
157
  if ([400, 404, 422].includes(response.status)) {
158
- return new ProviderRequestError(400, message);
158
+ return providerInputError(message);
159
159
  }
160
160
  return new ProviderRequestError(response.status || 500, message);
161
161
  }
@@ -254,7 +254,7 @@ function buildCreatePdfJobBody(input) {
254
254
  url: url
255
255
  ? assertPublicHttpUrl(url, {
256
256
  fieldName: "url",
257
- createError: (message) => new ProviderRequestError(400, message),
257
+ createError: providerInputError,
258
258
  }).toString()
259
259
  : undefined,
260
260
  template: optionalString(input.template),
@@ -280,7 +280,7 @@ function buildListPath(path, input) {
280
280
  return `${url.pathname}${url.search}`;
281
281
  }
282
282
  function readRecord(value) {
283
- return requiredRecord(value, "cloudlayer response", (message) => new ProviderRequestError(502, message));
283
+ return requiredRecord(value, "cloudlayer response", providerResponseError);
284
284
  }
285
285
  function readRequiredString(value, fieldName) {
286
286
  const parsed = optionalString(value);
@@ -177,10 +177,10 @@ async function toCodacyError(response, phase, notFoundAsInvalidInput) {
177
177
  return new ProviderRequestError(429, message);
178
178
  }
179
179
  if (response.status === 400 || response.status === 422) {
180
- return new ProviderRequestError(400, message);
180
+ return providerInputError(message);
181
181
  }
182
182
  if (response.status === 404 && notFoundAsInvalidInput) {
183
- return new ProviderRequestError(400, message);
183
+ return providerInputError(message);
184
184
  }
185
185
  return new ProviderRequestError(response.status || 500, message);
186
186
  }
@@ -244,10 +244,10 @@ async function toCodemagicError(response, phase, notFoundAsInvalidInput, isV3) {
244
244
  return new ProviderRequestError(429, message);
245
245
  }
246
246
  if (response.status === 400) {
247
- return new ProviderRequestError(400, message);
247
+ return providerInputError(message);
248
248
  }
249
249
  if (response.status === 404 && notFoundAsInvalidInput) {
250
- return new ProviderRequestError(400, message);
250
+ return providerInputError(message);
251
251
  }
252
252
  return new ProviderRequestError(response.status || 502, message);
253
253
  }
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalRecord, optionalString, optionalStringArray, requiredString } from "../../core/cast.js";
3
- import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, isAbortLikeError, ProviderRequestError, readProviderJsonBody, providerUserAgent, } from "../provider-runtime.js";
4
- import { buildConfluenceOAuthApiBaseUrls, confluenceActionHandlers, confluenceDefaultTimeoutMs, validateConfluenceCredential, } from "./runtime.js";
3
+ import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, isAbortLikeError, ProviderRequestError, readProviderJsonBody, providerUserAgent, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
+ import { buildConfluenceOAuthApiBaseUrls, confluenceActionHandlers, validateConfluenceCredential } from "./runtime.js";
5
5
  import { confluencePageReadScope, confluencePageWriteScope, confluenceSearchScope, confluenceSpaceReadScope, } from "./scopes.js";
6
6
  const service = "confluence";
7
7
  const confluenceAccessibleResourcesUrl = "https://api.atlassian.com/oauth/token/accessible-resources";
@@ -49,7 +49,7 @@ export const credentialValidators = {
49
49
  },
50
50
  };
51
51
  async function validateConfluenceOAuthCredential(credential, fetcher, signal) {
52
- const timeout = createProviderTimeout(signal, confluenceDefaultTimeoutMs);
52
+ const timeout = createProviderTimeout(signal);
53
53
  let resourcesResponse;
54
54
  let resourcesPayload;
55
55
  try {
@@ -69,7 +69,7 @@ async function validateConfluenceOAuthCredential(credential, fetcher, signal) {
69
69
  }
70
70
  catch (error) {
71
71
  if (timeout.didTimeout() || isAbortLikeError(error)) {
72
- throw new ProviderRequestError(504, `Confluence request timed out after ${Math.ceil(confluenceDefaultTimeoutMs / 1000)} seconds`);
72
+ throw new ProviderRequestError(504, `Confluence request timed out after ${Math.ceil(defaultProviderRequestTimeoutMs / 1000)} seconds`);
73
73
  }
74
74
  if (error instanceof ProviderRequestError) {
75
75
  throw error;
@@ -1,7 +1,6 @@
1
1
  import type { CredentialValidationResult } from "../../core/types.ts";
2
2
  import type { ProviderActionHandlers } from "../provider-runtime.ts";
3
3
  export declare const confluenceValidationPath = "/spaces";
4
- export declare const confluenceDefaultTimeoutMs = 30000;
5
4
  export type ConfluencePhase = "validate" | "execute";
6
5
  export interface ConfluenceBasicAuth {
7
6
  type: "basic";
@@ -1,8 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
3
- import { createProviderTimeout, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, requiredInputString, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, requiredInputString, providerResponseError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  export const confluenceValidationPath = "/spaces";
5
- export const confluenceDefaultTimeoutMs = 30_000;
6
5
  const defaultLimit = 25;
7
6
  const atlassianApiOrigin = "https://api.atlassian.com";
8
7
  export const confluenceActionHandlers = {
@@ -194,7 +193,7 @@ export async function requestConfluenceJson(input) {
194
193
  url.searchParams.set(key, String(value));
195
194
  }
196
195
  }
197
- const timeout = createProviderTimeout(input.signal, confluenceDefaultTimeoutMs);
196
+ const timeout = createProviderTimeout(input.signal);
198
197
  let response;
199
198
  let payload;
200
199
  try {
@@ -208,7 +207,7 @@ export async function requestConfluenceJson(input) {
208
207
  }
209
208
  catch (error) {
210
209
  if (timeout.didTimeout() || isAbortLikeError(error)) {
211
- throw new ProviderRequestError(504, `Confluence request timed out after ${Math.ceil(confluenceDefaultTimeoutMs / 1000)} seconds`);
210
+ throw new ProviderRequestError(504, `Confluence request timed out after ${Math.ceil(defaultProviderRequestTimeoutMs / 1000)} seconds`);
212
211
  }
213
212
  if (error instanceof ProviderRequestError) {
214
213
  throw error;
@@ -252,13 +251,13 @@ async function readConfluencePayload(response) {
252
251
  function createConfluenceError(response, payload, phase, notFoundAsInvalidInput) {
253
252
  const message = extractConfluenceErrorMessage(payload) ?? response.statusText ?? "Confluence request failed";
254
253
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
255
- return new ProviderRequestError(400, message);
254
+ return providerInputError(message);
256
255
  }
257
256
  if (notFoundAsInvalidInput && response.status === 404) {
258
257
  return new ProviderRequestError(404, message);
259
258
  }
260
259
  if (response.status === 400) {
261
- return new ProviderRequestError(400, message);
260
+ return providerInputError(message);
262
261
  }
263
262
  return new ProviderRequestError(response.status || 502, message, payload);
264
263
  }
@@ -384,7 +383,7 @@ function buildOptionalPageBody(input) {
384
383
  function requireObject(value, message) {
385
384
  const object = optionalRecord(value);
386
385
  if (!object) {
387
- throw new ProviderRequestError(502, message);
386
+ throw providerResponseError(message);
388
387
  }
389
388
  return object;
390
389
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString, requiredRecord } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent, requiredResponseRecord } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
3
3
  export const contactoutApiBaseUrl = "https://api.contactout.com";
4
4
  export const contactoutActionHandlers = {
5
5
  enrich_linkedin_profile(input, context) {
@@ -158,13 +158,13 @@ async function readContactoutPayload(response) {
158
158
  function mapContactoutError(status, payload, phase) {
159
159
  const message = readContactoutErrorMessage(payload, status);
160
160
  if (phase === "validate" && (status === 400 || status === 401)) {
161
- return new ProviderRequestError(400, message);
161
+ return providerInputError(message);
162
162
  }
163
163
  if (phase === "execute" && (status === 401 || status === 403)) {
164
164
  return new ProviderRequestError(status, message);
165
165
  }
166
166
  if (status === 400 || status === 401 || status === 403 || status === 404 || status === 422) {
167
- return new ProviderRequestError(400, message);
167
+ return providerInputError(message);
168
168
  }
169
169
  return new ProviderRequestError(status || 500, message, payload);
170
170
  }
@@ -191,7 +191,7 @@ function flattenFiltersInput(input, passthroughKeys) {
191
191
  return body;
192
192
  }
193
193
  function requireFilters(value) {
194
- const filters = requiredRecord(value, "filters", (message) => new ProviderRequestError(400, message));
194
+ const filters = requiredRecord(value, "filters", providerInputError);
195
195
  if (Object.keys(filters).length === 0) {
196
196
  throw new ProviderRequestError(400, "filters must contain at least one search filter.");
197
197
  }
@@ -214,5 +214,5 @@ function assertAnyString(input, keys, message) {
214
214
  if (keys.some((key) => optionalString(input[key]))) {
215
215
  return;
216
216
  }
217
- throw new ProviderRequestError(400, message);
217
+ throw providerInputError(message);
218
218
  }