@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,8 +1,7 @@
1
1
  import { compactObject, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const linkupApiBaseUrl = "https://api.linkup.so";
4
4
  const linkupValidationPath = "/v1/credits/balance";
5
- const linkupDefaultRequestTimeoutMs = 30_000;
6
5
  export const linkupActionHandlers = {
7
6
  get_credits_balance(_input, context) {
8
7
  return linkupRequest(context, {
@@ -98,7 +97,7 @@ export async function validateLinkupCredential(apiKey, fetcher, signal) {
98
97
  };
99
98
  }
100
99
  async function linkupRequest(context, input) {
101
- const timeout = createProviderTimeout(context.signal, linkupDefaultRequestTimeoutMs);
100
+ const timeout = createProviderTimeout(context.signal);
102
101
  try {
103
102
  const response = await context.fetcher(new URL(input.path, linkupApiBaseUrl), {
104
103
  method: input.method,
@@ -122,7 +121,7 @@ async function linkupRequest(context, input) {
122
121
  throw error;
123
122
  }
124
123
  if (timeout.didTimeout() || isAbortLikeError(error)) {
125
- throw new ProviderRequestError(504, `Linkup ${input.path} request timed out after ${Math.max(1, Math.ceil(linkupDefaultRequestTimeoutMs / 1000))} seconds`);
124
+ throw new ProviderRequestError(504, `Linkup ${input.path} request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
126
125
  }
127
126
  throw new ProviderRequestError(502, error instanceof Error ? `Linkup request failed: ${error.message}` : "Linkup request failed");
128
127
  }
@@ -151,13 +150,13 @@ function buildLinkupError(response, payload, mode) {
151
150
  return new ProviderRequestError(429, message);
152
151
  }
153
152
  if (mode === "validate" && [400, 401, 403].includes(response.status)) {
154
- return new ProviderRequestError(400, message);
153
+ return providerInputError(message);
155
154
  }
156
155
  if (mode === "execute" && [401, 403].includes(response.status)) {
157
156
  return new ProviderRequestError(401, message);
158
157
  }
159
158
  if (mode === "execute" && response.status === 400) {
160
- return new ProviderRequestError(400, message);
159
+ return providerInputError(message);
161
160
  }
162
161
  return new ProviderRequestError(response.status || 502, message);
163
162
  }
@@ -1,7 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalInteger, optionalNumber, optionalRawString, optionalRecord } from "../../core/cast.js";
3
3
  import { assertPublicHttpUrl } from "../../core/request.js";
4
- import { defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, runProviderRequest, } from "../provider-runtime.js";
4
+ import { defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, runProviderRequest, providerInputError, providerResponseError, } from "../provider-runtime.js";
5
5
  const service = "liveagent";
6
6
  const liveagentCredentialHelpUrl = "https://support.liveagent.com/741982-API-key";
7
7
  const liveagentValidationPath = "/my_account/_link";
@@ -221,7 +221,7 @@ function normalizeLiveagentBaseUrl(value) {
221
221
  }
222
222
  const url = assertPublicHttpUrl(value.trim(), {
223
223
  fieldName: "baseUrl",
224
- createError: (message) => new ProviderRequestError(400, message),
224
+ createError: providerInputError,
225
225
  });
226
226
  if (url.username || url.password) {
227
227
  throw new ProviderRequestError(400, "baseUrl must not include credentials");
@@ -307,7 +307,7 @@ async function readLiveagentPayload(response) {
307
307
  function createLiveagentError(status, payload, mode) {
308
308
  const message = readErrorMessage(payload) ?? `LiveAgent request failed with status ${status}`;
309
309
  if (status === 401 || status === 403) {
310
- return mode === "validate" ? new ProviderRequestError(400, message) : new ProviderRequestError(status, message);
310
+ return mode === "validate" ? providerInputError(message) : new ProviderRequestError(status, message);
311
311
  }
312
312
  if (status === 429) {
313
313
  return new ProviderRequestError(429, message);
@@ -315,7 +315,7 @@ function createLiveagentError(status, payload, mode) {
315
315
  if (status === 400 || status === 404 || status === 422) {
316
316
  return new ProviderRequestError(status === 404 ? 404 : 400, message);
317
317
  }
318
- return new ProviderRequestError(502, message);
318
+ return providerResponseError(message);
319
319
  }
320
320
  function buildPageQuery(input) {
321
321
  return compactObject({
@@ -434,13 +434,13 @@ function normalizeDepartment(value) {
434
434
  function asObject(value, errorMessage) {
435
435
  const object = optionalRecord(value);
436
436
  if (!object) {
437
- throw new ProviderRequestError(502, errorMessage);
437
+ throw providerResponseError(errorMessage);
438
438
  }
439
439
  return object;
440
440
  }
441
441
  function asObjectArray(value, errorMessage) {
442
442
  if (!Array.isArray(value)) {
443
- throw new ProviderRequestError(502, errorMessage);
443
+ throw providerResponseError(errorMessage);
444
444
  }
445
445
  return value.map((item) => asObject(item, errorMessage));
446
446
  }
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, optionalString } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, providerInputError, } from "../provider-runtime.js";
3
3
  const service = "loops";
4
4
  const loopsApiOrigin = "https://app.loops.so";
5
5
  const loopsApiBaseUrl = `${loopsApiOrigin}/api`;
@@ -211,7 +211,7 @@ function createLoopsError(response, payload, phase) {
211
211
  return new ProviderRequestError(429, message);
212
212
  }
213
213
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
214
- return new ProviderRequestError(400, message);
214
+ return providerInputError(message);
215
215
  }
216
216
  if (phase === "execute" && (response.status === 401 || response.status === 403)) {
217
217
  return new ProviderRequestError(401, message);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { providerUserAgent, ProviderRequestError, requiredInputString } from "../provider-runtime.js";
2
+ import { providerUserAgent, ProviderRequestError, requiredInputString, providerInputError, } from "../provider-runtime.js";
3
3
  export const loyjoyApiBaseUrl = "https://app-stable.loyjoy.com/api";
4
4
  export const loyjoyActionHandlers = {
5
5
  async list_processes(_input, context) {
@@ -80,7 +80,7 @@ function errorFor(response, payload, phase) {
80
80
  if (response.status === 429)
81
81
  return new ProviderRequestError(429, message);
82
82
  if (phase === "validate" && response.status >= 400 && response.status < 500)
83
- return new ProviderRequestError(400, message);
83
+ return providerInputError(message);
84
84
  if (phase === "execute" && (response.status === 401 || response.status === 403))
85
85
  return new ProviderRequestError(401, message);
86
86
  return new ProviderRequestError(response.status >= 400 && response.status < 500 ? 400 : 502, message);
@@ -1,6 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalRecord, optionalString, requiredString, stringArray } from "../../core/cast.js";
3
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerInputError, ProviderRequestError, providerUserAgent, requiredResponseRecord, } from "../provider-runtime.js";
3
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerInputError, ProviderRequestError, providerUserAgent, requiredResponseRecord, providerResponseError, } from "../provider-runtime.js";
4
4
  const service = "loyverse";
5
5
  const loyverseApiBaseUrl = "https://api.loyverse.com/v1.0";
6
6
  export const loyverseActionHandlers = {
@@ -202,13 +202,13 @@ function mapLoyverseError(status, errors) {
202
202
  const field = optionalString(firstError.field);
203
203
  const message = [code, field, details].filter(Boolean).join(": ") || "Loyverse request failed";
204
204
  if (status === 401 || code === "UNAUTHORIZED") {
205
- return new ProviderRequestError(400, message);
205
+ return providerInputError(message);
206
206
  }
207
207
  if (status === 429) {
208
208
  return new ProviderRequestError(429, message);
209
209
  }
210
210
  if (status >= 400 && status < 500) {
211
- return new ProviderRequestError(400, message);
211
+ return providerInputError(message);
212
212
  }
213
- return new ProviderRequestError(502, message);
213
+ return providerResponseError(message);
214
214
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const lushaApiBaseUrl = "https://api.lusha.com";
4
4
  export const lushaActionHandlers = {
5
5
  get_account_usage(_input, context) {
@@ -125,7 +125,7 @@ function mapLushaError(status, message, phase) {
125
125
  return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
126
126
  }
127
127
  if (status >= 400 && status < 500) {
128
- return new ProviderRequestError(400, message);
128
+ return providerInputError(message);
129
129
  }
130
- return new ProviderRequestError(502, message);
130
+ return providerResponseError(message);
131
131
  }
@@ -1,7 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalRecord, optionalString, stringArray } from "../../core/cast.js";
2
- import { createProviderTimeout, ProviderRequestError, providerUserAgent, requiredInputString, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, ProviderRequestError, providerUserAgent, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const mailblusterApiBaseUrl = "https://api.mailbluster.com";
4
- const mailblusterDefaultRequestTimeoutMs = 30_000;
5
4
  export const mailblusterActionHandlers = {
6
5
  list_fields(_input, context) {
7
6
  return requestMailblusterJson({
@@ -104,7 +103,7 @@ async function requestMailblusterJson(input) {
104
103
  if (input.body) {
105
104
  headers["content-type"] = "application/json";
106
105
  }
107
- const timeout = createProviderTimeout(input.context.signal, mailblusterDefaultRequestTimeoutMs);
106
+ const timeout = createProviderTimeout(input.context.signal);
108
107
  let response;
109
108
  try {
110
109
  response = await input.context.fetcher(url.toString(), {
@@ -116,7 +115,7 @@ async function requestMailblusterJson(input) {
116
115
  }
117
116
  catch (error) {
118
117
  throw new ProviderRequestError(timeout.didTimeout() ? 504 : 502, timeout.didTimeout()
119
- ? `MailBluster request timed out after ${mailblusterDefaultRequestTimeoutMs}ms`
118
+ ? `MailBluster request timed out after ${defaultProviderRequestTimeoutMs}ms`
120
119
  : error instanceof Error
121
120
  ? `MailBluster request failed: ${error.message}`
122
121
  : "MailBluster request failed");
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } 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 maxMailcoachResponseBytes = 10 * 1024 * 1024;
5
5
  export const mailcoachActionHandlers = {
6
6
  list_email_lists(input, context) {
@@ -161,7 +161,7 @@ export function normalizeMailcoachBaseUrl(input, allowPrivateNetwork = isPrivate
161
161
  const withProtocol = raw.includes("://") ? raw : `https://${raw}`;
162
162
  const parsed = assertPublicHttpUrl(withProtocol, {
163
163
  fieldName: "baseUrl",
164
- createError: (message) => new ProviderRequestError(400, message),
164
+ createError: providerInputError,
165
165
  allowPrivateNetwork,
166
166
  });
167
167
  if (parsed.protocol !== "https:") {
@@ -346,7 +346,7 @@ function createMailcoachError(response, payload, mode, notFoundAsInvalidInput) {
346
346
  const fallbackMessage = response.statusText.trim() || `mailcoach request failed with status ${response.status}`;
347
347
  const message = extractMailcoachErrorMessage(payload) ?? fallbackMessage;
348
348
  if (response.status >= 300 && response.status < 400) {
349
- return new ProviderRequestError(502, message);
349
+ return providerResponseError(message);
350
350
  }
351
351
  if (response.status === 401 || response.status === 403) {
352
352
  return new ProviderRequestError(mode === "validate" ? 400 : 401, message);
@@ -355,7 +355,7 @@ function createMailcoachError(response, payload, mode, notFoundAsInvalidInput) {
355
355
  return new ProviderRequestError(429, message);
356
356
  }
357
357
  if (response.status === 400 || response.status === 422 || (response.status === 404 && notFoundAsInvalidInput)) {
358
- return new ProviderRequestError(400, message);
358
+ return providerInputError(message);
359
359
  }
360
360
  return new ProviderRequestError(response.status || 502, message);
361
361
  }
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalNumber, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
2
  import { queryParams } from "../../core/request.js";
3
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, readProviderJsonBody, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, readProviderJsonBody, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  const service = "mailgenius";
5
5
  const mailgeniusApiBaseUrl = "https://app.mailgenius.com";
6
- const requestTimeoutMs = 30_000;
7
6
  export const mailgeniusActionHandlers = {
8
7
  async get_daily_limit(_input, context) {
9
8
  return {
@@ -82,7 +81,7 @@ async function requestMailgeniusJson(input, context, phase) {
82
81
  for (const [key, value] of Object.entries(input.query ?? {})) {
83
82
  url.searchParams.set(key, value);
84
83
  }
85
- const timeout = createProviderTimeout(context.signal, requestTimeoutMs);
84
+ const timeout = createProviderTimeout(context.signal);
86
85
  let response;
87
86
  let payload;
88
87
  try {
@@ -106,7 +105,7 @@ async function requestMailgeniusJson(input, context, phase) {
106
105
  throw error;
107
106
  }
108
107
  if (timeout.didTimeout()) {
109
- throw new ProviderRequestError(504, `MailGenius request timed out after ${requestTimeoutMs / 1000} seconds`);
108
+ throw new ProviderRequestError(504, `MailGenius request timed out after ${defaultProviderRequestTimeoutMs / 1000} seconds`);
110
109
  }
111
110
  throw new ProviderRequestError(502, error instanceof Error ? `MailGenius request failed: ${error.message}` : "MailGenius request failed");
112
111
  }
@@ -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 { ProviderRequestError, providerUserAgent, requiredResponseRecord } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, requiredResponseRecord, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  const mailjetApiBaseUrl = "https://api.mailjet.com/v3/REST";
5
5
  const mailjetValidationPath = "/contact?Limit=1";
6
6
  export const mailjetActionHandlers = {
@@ -156,9 +156,9 @@ function createMailjetError(response, payload, phase, notFoundAsInvalidInput) {
156
156
  return new ProviderRequestError(429, message);
157
157
  }
158
158
  if (phase === "validate") {
159
- return new ProviderRequestError(400, message);
159
+ return providerInputError(message);
160
160
  }
161
- return new ProviderRequestError(502, message);
161
+ return providerResponseError(message);
162
162
  }
163
163
  function extractMailjetErrorMessage(payload) {
164
164
  if (typeof payload === "string" && payload) {
@@ -144,7 +144,7 @@ async function readMailsSoErrorMessage(response) {
144
144
  }
145
145
  function mapMailsSoError(status, message, phase) {
146
146
  if (status === 400 || status === 404) {
147
- return new ProviderRequestError(400, message);
147
+ return providerInputError(message);
148
148
  }
149
149
  if (status === 401) {
150
150
  if (message.toLowerCase().includes("paid subscription")) {
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, requiredString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const mailsoftlyApiBaseUrl = "https://app.mailsoftly.com/api/v3";
4
4
  const mailsoftlyRequestByAction = {
5
5
  get_contacts: { method: "GET", path: "/get_contacts" },
@@ -38,7 +38,7 @@ const mailsoftlyRequestByAction = {
38
38
  };
39
39
  export async function validateMailsoftlyCredential(input, fetcher) {
40
40
  const payload = await requestMailsoftly({
41
- apiKey: requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)),
41
+ apiKey: requiredString(input.apiKey, "apiKey", providerInputError),
42
42
  fetcher,
43
43
  method: "POST",
44
44
  path: "/authentication",
@@ -142,15 +142,15 @@ function readErrorMessage(payload) {
142
142
  }
143
143
  function mapMailsoftlyError(status, message, phase) {
144
144
  if (status === 401 || status === 403) {
145
- return phase === "validate" ? new ProviderRequestError(400, message) : new ProviderRequestError(401, message);
145
+ return phase === "validate" ? providerInputError(message) : new ProviderRequestError(401, message);
146
146
  }
147
147
  if (status === 429) {
148
148
  return new ProviderRequestError(429, message);
149
149
  }
150
150
  if (status >= 400 && status < 500) {
151
- return new ProviderRequestError(400, message);
151
+ return providerInputError(message);
152
152
  }
153
- return new ProviderRequestError(502, message);
153
+ return providerResponseError(message);
154
154
  }
155
155
  function requireObject(value, fieldName) {
156
156
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -1,8 +1,7 @@
1
1
  import { compactObject, objectArray, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString, } from "../../core/cast.js";
2
2
  import { compactJson } from "../../core/request.js";
3
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  export const mailtrapApiBaseUrl = "https://mailtrap.io";
5
- const mailtrapRequestTimeoutMs = 30_000;
6
5
  export const mailtrapActionHandlers = {
7
6
  async list_accounts(_input, context) {
8
7
  return {
@@ -664,7 +663,7 @@ async function requestMailtrapResourceObject(input) {
664
663
  return requiredRecord(payload, "Mailtrap response");
665
664
  }
666
665
  async function requestMailtrapJson(input) {
667
- const timeout = createProviderTimeout(input.signal, mailtrapRequestTimeoutMs);
666
+ const timeout = createProviderTimeout(input.signal);
668
667
  try {
669
668
  const response = await input.fetcher(buildMailtrapUrl(input.path, input.query), {
670
669
  method: input.method ?? "GET",
@@ -686,7 +685,7 @@ async function requestMailtrapJson(input) {
686
685
  }
687
686
  }
688
687
  async function requestMailtrapText(input) {
689
- const timeout = createProviderTimeout(input.signal, mailtrapRequestTimeoutMs);
688
+ const timeout = createProviderTimeout(input.signal);
690
689
  try {
691
690
  const response = await input.fetcher(buildMailtrapUrl(input.path, input.query), {
692
691
  method: "GET",
@@ -888,7 +887,7 @@ function normalizeMailtrapTransportError(error, didTimeout) {
888
887
  return error;
889
888
  }
890
889
  if (didTimeout || isAbortLikeError(error)) {
891
- return new ProviderRequestError(504, `Mailtrap request timed out after ${Math.ceil(mailtrapRequestTimeoutMs / 1000)} seconds`);
890
+ return new ProviderRequestError(504, `Mailtrap request timed out after ${Math.ceil(defaultProviderRequestTimeoutMs / 1000)} seconds`);
892
891
  }
893
892
  return new ProviderRequestError(502, error instanceof Error ? `Mailtrap request failed: ${error.message}` : "Mailtrap request failed");
894
893
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { isAbortLikeError, mapProviderActionSources, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { isAbortLikeError, mapProviderActionSources, providerUserAgent, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
3
3
  const manusApiBaseUrl = "https://api.manus.ai";
4
4
  const validationEndpoint = "/v2/project.list";
5
5
  const manusOperations = {
@@ -231,7 +231,7 @@ function mapManusError(status, message, errorCode, phase) {
231
231
  return new ProviderRequestError(429, message);
232
232
  }
233
233
  if (phase === "validate" && (status === 401 || status === 403)) {
234
- return new ProviderRequestError(400, message);
234
+ return providerInputError(message);
235
235
  }
236
236
  if (phase === "execute" && status === 401) {
237
237
  return new ProviderRequestError(401, message);
@@ -241,7 +241,7 @@ function mapManusError(status, message, errorCode, phase) {
241
241
  return new ProviderRequestError(errorCode === "permission_denied" || lowerMessage.includes("insufficient_scope") ? 403 : 502, message);
242
242
  }
243
243
  if (status === 400 || status === 404 || status === 422) {
244
- return new ProviderRequestError(400, message);
244
+ return providerInputError(message);
245
245
  }
246
246
  return new ProviderRequestError(status >= 500 ? 502 : status || 500, message);
247
247
  }
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString, positiveInteger } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
3
- import { basicAuthorizationHeader, createProviderTimeout, isAbortSignalError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
3
+ import { basicAuthorizationHeader, createProviderTimeout, isAbortSignalError, ProviderRequestError, providerUserAgent, providerInputError, } from "../provider-runtime.js";
4
4
  const mauticMaxResponseBytes = 10 * 1024 * 1024;
5
5
  export const mauticActionHandlers = {
6
6
  async list_contacts(input, credential, fetcher, signal) {
@@ -125,7 +125,7 @@ export function normalizeMauticBaseUrl(value, allowPrivateNetwork = isPrivateNet
125
125
  }
126
126
  const url = assertPublicHttpUrl(trimmed, {
127
127
  fieldName: "baseUrl",
128
- createError: (message) => new ProviderRequestError(400, message),
128
+ createError: providerInputError,
129
129
  allowPrivateNetwork,
130
130
  });
131
131
  if (url.protocol !== "https:") {
@@ -313,7 +313,7 @@ function mapMauticError(response, payload, phase) {
313
313
  return new ProviderRequestError(403, "The connected Mautic user does not have permission to perform this action");
314
314
  }
315
315
  if (phase === "validate" && response.status >= 400 && response.status < 500) {
316
- return new ProviderRequestError(400, message);
316
+ return providerInputError(message);
317
317
  }
318
318
  if (response.status === 404) {
319
319
  return new ProviderRequestError(404, message);
@@ -1,5 +1,5 @@
1
1
  import { optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
2
+ import { createProviderTimeout, providerUserAgent, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
3
3
  export const megaventoryApiBaseUrl = "https://api.megaventory.com/v2017a";
4
4
  const recordAction = "InsertOrUpdateNonEmptyFields";
5
5
  const lists = {
@@ -179,14 +179,14 @@ function error(code, payload, phase) {
179
179
  if (code === 429)
180
180
  return new ProviderRequestError(429, message);
181
181
  if (phase === "validate")
182
- return new ProviderRequestError(400, message);
182
+ return providerInputError(message);
183
183
  if (message.toLowerCase().includes("api key") ||
184
184
  message.toLowerCase().includes("apikey") ||
185
185
  code === 401 ||
186
186
  code === 403)
187
187
  return new ProviderRequestError(401, message);
188
188
  if (code < 500)
189
- return new ProviderRequestError(400, message);
189
+ return providerInputError(message);
190
190
  return new ProviderRequestError(code || 502, message);
191
191
  }
192
192
  function object(value, label) {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent, requiredInputString, runProviderRequest, } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, requiredInputString, runProviderRequest, providerInputError, } from "../provider-runtime.js";
3
3
  const memberstackApiBaseUrl = "https://admin.memberstack.com";
4
4
  export const memberstackActionHandlers = {
5
5
  list_members(input, context) {
@@ -194,7 +194,7 @@ function createMemberstackError(status, payload, phase) {
194
194
  return new ProviderRequestError(429, message);
195
195
  }
196
196
  if (phase === "validate" && status >= 400 && status < 500) {
197
- return new ProviderRequestError(400, message);
197
+ return providerInputError(message);
198
198
  }
199
199
  if (phase === "execute" && status === 401) {
200
200
  return new ProviderRequestError(401, message);
@@ -1,8 +1,7 @@
1
- import { defineOAuthProviderExecutors, defineProviderProxy, mapProviderActionHandlers, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
1
+ import { defineOAuthProviderExecutors, defineProviderProxy, mapProviderActionHandlers, ProviderRequestError, providerUserAgent, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
2
2
  import { mendeleyActions } from "./actions.js";
3
3
  const service = "mendeley";
4
4
  const mendeleyApiBaseUrl = "https://api.mendeley.com";
5
- const mendeleyRequestTimeoutMs = 30_000;
6
5
  const documentMediaType = "application/vnd.mendeley-document.1+json";
7
6
  const profileMediaType = "application/vnd.mendeley-profiles.1+json";
8
7
  const handlers = mapProviderActionHandlers(service, mendeleyActions, (_action, name) => (input, context) => executeMendeleyAction(name, input, context.accessToken, context.fetcher));
@@ -104,7 +103,7 @@ async function requestMendeley(url, accessToken, fetcher, phase, options) {
104
103
  method: options.method ?? "GET",
105
104
  headers,
106
105
  body: options.body,
107
- signal: AbortSignal.timeout(mendeleyRequestTimeoutMs),
106
+ signal: AbortSignal.timeout(defaultProviderRequestTimeoutMs),
108
107
  });
109
108
  if (!response.ok) {
110
109
  const payload = await readOptionalJson(response);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
3
3
  export const mindbodyApiBaseUrl = "https://api.mindbodyonline.com";
4
4
  const mindbodyBusinessDirectoryPath = "/partnergateway/consumer/activity/v1/businesses";
5
5
  export const mindbodyActionHandlers = {
@@ -98,13 +98,13 @@ function createMindbodyError(response, payload, phase) {
98
98
  return new ProviderRequestError(429, message);
99
99
  }
100
100
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
101
- return new ProviderRequestError(400, message);
101
+ return providerInputError(message);
102
102
  }
103
103
  if (phase === "execute" && (response.status === 401 || response.status === 403)) {
104
104
  return new ProviderRequestError(401, message);
105
105
  }
106
106
  if (phase === "execute" && [400, 404, 422].includes(response.status)) {
107
- return new ProviderRequestError(400, message);
107
+ return providerInputError(message);
108
108
  }
109
109
  return new ProviderRequestError(response.status || 500, message);
110
110
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  const service = "minerstat";
4
4
  const minerstatApiOrigin = "https://api.minerstat.com";
5
5
  const minerstatApiBaseUrl = `${minerstatApiOrigin}/v2`;
@@ -124,9 +124,9 @@ function createMinerstatError(status, payload, phase) {
124
124
  return new ProviderRequestError(429, message);
125
125
  }
126
126
  if (status === 400 || status === 404 || status === 422) {
127
- return new ProviderRequestError(400, message);
127
+ return providerInputError(message);
128
128
  }
129
- return new ProviderRequestError(502, message);
129
+ return providerResponseError(message);
130
130
  }
131
131
  function extractMinerstatErrorMessage(payload) {
132
132
  if (typeof payload === "string") {
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { createProviderTimeout, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const mintlifyApiBaseUrl = "https://api.mintlify.com/v1";
4
4
  export async function validateMintlifyCredential(apiKey, projectId, fetcher) {
5
5
  if (!projectId.trim())
@@ -104,9 +104,9 @@ function createMintlifyError(response, payload, phase) {
104
104
  return new ProviderRequestError(phase === "validate" ? 400 : 403, message);
105
105
  }
106
106
  if (response.status === 400 || response.status === 404 || response.status === 422) {
107
- return new ProviderRequestError(400, message);
107
+ return providerInputError(message);
108
108
  }
109
- return new ProviderRequestError(502, message);
109
+ return providerResponseError(message);
110
110
  }
111
111
  function isAbortError(error) {
112
112
  return error instanceof Error && error.name === "AbortError";
@@ -221,18 +221,16 @@ function readSingleResource(payload, key) {
221
221
  function createMissiveError(response, payload, phase, notFoundAsInvalidInput) {
222
222
  const message = extractMissiveMessage(payload) ?? response.statusText ?? "missive request failed";
223
223
  if (response.status === 401 || response.status === 403) {
224
- return phase === "validate"
225
- ? new ProviderRequestError(400, message)
226
- : new ProviderRequestError(response.status, message);
224
+ return phase === "validate" ? providerInputError(message) : new ProviderRequestError(response.status, message);
227
225
  }
228
226
  if (response.status === 404 && notFoundAsInvalidInput) {
229
- return new ProviderRequestError(400, message);
227
+ return providerInputError(message);
230
228
  }
231
229
  if (response.status === 429) {
232
230
  return new ProviderRequestError(429, message);
233
231
  }
234
232
  if (response.status >= 400 && response.status < 500) {
235
- return new ProviderRequestError(400, message);
233
+ return providerInputError(message);
236
234
  }
237
235
  return new ProviderRequestError(response.status || 502, message);
238
236
  }
@@ -1,6 +1,6 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalInteger, optionalRecord, optionalScalarString, optionalString, } from "../../core/cast.js";
3
- import { createProviderProxyUrl, createProviderTimeout, defineProviderExecutors, isAbortLikeError, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, } from "../provider-runtime.js";
3
+ import { createProviderProxyUrl, createProviderTimeout, defineProviderExecutors, isAbortLikeError, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, providerInputError, } from "../provider-runtime.js";
4
4
  const service = "mixpanel";
5
5
  const mixpanelDefaultBaseUrl = "https://mixpanel.com";
6
6
  const mixpanelDefaultExportBaseUrl = "https://data.mixpanel.com";
@@ -500,10 +500,10 @@ function createMixpanelError(response, payload, phase, notFoundAsInvalidInput =
500
500
  return new ProviderRequestError(phase === "validate" ? 400 : response.status, message);
501
501
  }
502
502
  if (response.status === 404 && (phase === "validate" || notFoundAsInvalidInput)) {
503
- return new ProviderRequestError(400, message);
503
+ return providerInputError(message);
504
504
  }
505
505
  if (response.status === 400 || response.status === 422) {
506
- return new ProviderRequestError(400, message);
506
+ return providerInputError(message);
507
507
  }
508
508
  return new ProviderRequestError(response.status || 502, message);
509
509
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, ProviderRequestError, providerUserAgent, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const mobileTextAlertsApiBaseUrl = "https://api.mobile-text-alerts.com/v3";
4
4
  const mutationFields = ["firstName", "lastName", "email", "number", "e164Number", "groupIds", "subscriberFields"];
5
5
  export const mobileTextAlertsActionHandlers = {
@@ -110,7 +110,7 @@ async function requestMobileTextAlertsJson(options) {
110
110
  "user-agent": providerUserAgent,
111
111
  },
112
112
  body: options.body === undefined ? undefined : JSON.stringify(options.body),
113
- signal: options.signal ?? AbortSignal.timeout(30_000),
113
+ signal: options.signal ?? AbortSignal.timeout(defaultProviderRequestTimeoutMs),
114
114
  });
115
115
  }
116
116
  catch (error) {
@@ -141,7 +141,7 @@ function mobileTextAlertsError(response, payload, phase) {
141
141
  return new ProviderRequestError(phase === "validate" ? 400 : response.status, message);
142
142
  }
143
143
  if (response.status === 400 || response.status === 404) {
144
- return new ProviderRequestError(400, message);
144
+ return providerInputError(message);
145
145
  }
146
146
  if (response.status === 429)
147
147
  return new ProviderRequestError(429, message);