@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, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  const service = "mocean";
4
4
  const moceanApiBaseUrl = "https://rest.moceanapi.com/rest/2";
5
5
  export const proxy = defineProviderProxy({
@@ -163,9 +163,9 @@ function mapMoceanStatusError(status, message, phase) {
163
163
  return new ProviderRequestError(429, message);
164
164
  }
165
165
  if ([2, 3, 5, 6, 14, 26, 28, 29, 34, 46, 51, 72].includes(status)) {
166
- return new ProviderRequestError(400, message);
166
+ return providerInputError(message);
167
167
  }
168
- return new ProviderRequestError(502, message);
168
+ return providerResponseError(message);
169
169
  }
170
170
  function mapMoceanHttpError(response, payload, phase) {
171
171
  const payloadRecord = optionalRecord(payload);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalBooleanOrNull, optionalInteger, optionalRecord, optionalString, rawStringOrNull, } from "../../core/cast.js";
2
- import { defineProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, requireApiKeyCredential, } from "../provider-runtime.js";
2
+ import { defineProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, requireApiKeyCredential, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  const service = "moco";
4
4
  export const proxy = defineProviderProxy({
5
5
  service,
@@ -349,21 +349,21 @@ function readNextPage(linkHeader) {
349
349
  function mapMocoError(response, payload, phase, notFoundAsInvalidInput = false) {
350
350
  const message = extractErrorMessage(payload) ?? (response.statusText || "MOCO request failed");
351
351
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
352
- return new ProviderRequestError(400, message);
352
+ return providerInputError(message);
353
353
  }
354
354
  if (phase === "execute" && (response.status === 401 || response.status === 403)) {
355
355
  return new ProviderRequestError(401, message);
356
356
  }
357
357
  if (response.status === 404 && notFoundAsInvalidInput) {
358
- return new ProviderRequestError(400, message);
358
+ return providerInputError(message);
359
359
  }
360
360
  if (response.status === 400 || response.status === 404 || response.status === 422) {
361
- return new ProviderRequestError(400, message);
361
+ return providerInputError(message);
362
362
  }
363
363
  if (response.status === 429) {
364
364
  return new ProviderRequestError(429, message);
365
365
  }
366
- return new ProviderRequestError(502, message);
366
+ return providerResponseError(message);
367
367
  }
368
368
  async function readResponsePayload(response) {
369
369
  const text = await response.text().catch(() => "");
@@ -1,6 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
2
2
  import { queryParams } from "../../core/request.js";
3
- import { createProviderTimeout, isAbortLikeError, providerFetch, ProviderRequestError, providerUserAgent, requiredInputString, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, isAbortLikeError, providerFetch, ProviderRequestError, providerUserAgent, requiredInputString, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  export const moesifApiBaseUrl = "https://api.moesif.com/v1";
5
5
  const defaultOrganizationId = "~";
6
6
  const defaultAppId = "~";
@@ -76,7 +76,7 @@ export const moesifActionHandlers = {
76
76
  export async function validateMoesifCredential(apiKey, fetcher = providerFetch, signal) {
77
77
  const payload = await requestMoesifJson({
78
78
  path: buildOrganizationPath(undefined, "apps"),
79
- apiKey: requiredString(apiKey, "apiKey", (message) => new ProviderRequestError(400, message)),
79
+ apiKey: requiredString(apiKey, "apiKey", providerInputError),
80
80
  params: {
81
81
  take: "1",
82
82
  },
@@ -168,7 +168,7 @@ function createMoesifError(status, payload, phase) {
168
168
  return new ProviderRequestError(429, message);
169
169
  }
170
170
  if (phase === "validate" && status >= 400 && status < 500) {
171
- return new ProviderRequestError(400, message);
171
+ return providerInputError(message);
172
172
  }
173
173
  if (phase === "execute" && (status === 401 || status === 403)) {
174
174
  return new ProviderRequestError(status, message);
@@ -250,7 +250,7 @@ function normalizeWorkspace(payload) {
250
250
  function requireRecord(value, message) {
251
251
  const record = optionalRecord(value);
252
252
  if (!record) {
253
- throw new ProviderRequestError(502, message);
253
+ throw providerResponseError(message);
254
254
  }
255
255
  return record;
256
256
  }
@@ -1,10 +1,10 @@
1
1
  import { compactObject, optionalBoolean, optionalRecord as asOptionalObject, optionalString } from "../../core/cast.js";
2
+ import { defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
2
3
  import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
3
4
  import { getMondayProviderScopeSurface } from "./scopes.js";
4
5
  export const mondayApiUrl = "https://api.monday.com/v2";
5
6
  export const mondayApiVersion = "2026-04";
6
7
  export const mondayUserAgent = providerUserAgent;
7
- const mondayDefaultRequestTimeoutMs = 30_000;
8
8
  export async function validateMondayCredential(input, fetcher = providerFetch, options = {}) {
9
9
  const apiKey = optionalString(input.apiKey);
10
10
  if (!apiKey) {
@@ -47,7 +47,7 @@ export async function fetchMondayCurrentUser(apiKey, fetcher, phase) {
47
47
  }, fetcher, phase);
48
48
  }
49
49
  export async function mondayGraphqlRequest(apiKey, input, fetcher, phase) {
50
- const timeout = createProviderTimeout(undefined, mondayDefaultRequestTimeoutMs);
50
+ const timeout = createProviderTimeout(undefined);
51
51
  let response;
52
52
  try {
53
53
  response = await fetcher(mondayApiUrl, {
@@ -71,7 +71,7 @@ export async function mondayGraphqlRequest(apiKey, input, fetcher, phase) {
71
71
  throw error;
72
72
  }
73
73
  if (timeout.didTimeout() || isAbortLikeError(error)) {
74
- throw new ProviderRequestError(504, `monday request timed out after ${Math.max(1, Math.ceil(mondayDefaultRequestTimeoutMs / 1000))} seconds`);
74
+ throw new ProviderRequestError(504, `monday request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
75
75
  }
76
76
  throw new ProviderRequestError(502, error instanceof Error ? `monday request failed: ${error.message}` : "monday request failed");
77
77
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, 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 monicaCrmApiBaseUrl = "https://app.monicahq.com/api";
4
4
  export const monicaCrmActionHandlers = {
5
5
  list_contacts(input, context) {
@@ -123,7 +123,7 @@ async function readResponsePayload(response) {
123
123
  function createMonicaCrmError(response, payload, phase) {
124
124
  const message = readMonicaCrmErrorMessage(payload) ?? `Monica request failed (${response.status})`;
125
125
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
126
- return new ProviderRequestError(400, message);
126
+ return providerInputError(message);
127
127
  }
128
128
  return new ProviderRequestError(response.status, message);
129
129
  }
@@ -144,13 +144,13 @@ function readMonicaCrmErrorMessage(payload) {
144
144
  function readEnvelopeData(payload, message) {
145
145
  const data = payload.data;
146
146
  if (!data || typeof data !== "object" || Array.isArray(data)) {
147
- throw new ProviderRequestError(502, message);
147
+ throw providerResponseError(message);
148
148
  }
149
149
  return data;
150
150
  }
151
151
  function readNumber(value, message) {
152
152
  if (typeof value !== "number" || !Number.isFinite(value)) {
153
- throw new ProviderRequestError(502, message);
153
+ throw providerResponseError(message);
154
154
  }
155
155
  return value;
156
156
  }
@@ -1,6 +1,6 @@
1
1
  import { optionalInteger, optionalNumber, optionalRecord, optionalString, requiredRecord } from "../../core/cast.js";
2
2
  import { jsonObject } from "../../core/request.js";
3
- import { createProviderTimeout, providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
3
+ import { createProviderTimeout, providerUserAgent, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
4
4
  export const moorchehApiBaseUrl = "https://api.moorcheh.ai/v1";
5
5
  const namespaceNamePattern = /^[A-Za-z0-9_-]+$/u;
6
6
  export const moorchehActionHandlers = {
@@ -144,7 +144,7 @@ function createMoorchehError(status, payload, phase) {
144
144
  return new ProviderRequestError(429, message);
145
145
  }
146
146
  if (phase === "validate" && status >= 400 && status < 500) {
147
- return new ProviderRequestError(400, message);
147
+ return providerInputError(message);
148
148
  }
149
149
  if (status === 401 || status === 403) {
150
150
  return new ProviderRequestError(status, message);
@@ -182,7 +182,7 @@ function readDocuments(value) {
182
182
  throw new ProviderRequestError(400, "documents must be a non-empty array");
183
183
  }
184
184
  return value.map((item, index) => {
185
- const document = requiredRecord(item, `documents[${index}]`, (message) => new ProviderRequestError(400, message));
185
+ const document = requiredRecord(item, `documents[${index}]`, providerInputError);
186
186
  return {
187
187
  ...document,
188
188
  id: readRequiredTrimmedString(document.id, `documents[${index}].id`),
@@ -9,7 +9,6 @@ export interface MoreTreesCredentialCheck {
9
9
  export declare const moreTreesAccountOrigin = "https://user-management-service.platform.moretrees.eco";
10
10
  export declare const moreTreesProjectOrigin = "https://project-management-service.platform.moretrees.eco";
11
11
  export declare const moreTreesTransactionOrigin = "https://transaction-management-service.platform.moretrees.eco";
12
- export declare const moreTreesRequestTimeoutMs = 30000;
13
12
  type MoreTreesActionInput = ApiKeyActionRequest & {
14
13
  actionName: MoreTreesActionName;
15
14
  input: Record<string, unknown>;
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const moreTreesAccountOrigin = "https://user-management-service.platform.moretrees.eco";
4
4
  export const moreTreesProjectOrigin = "https://project-management-service.platform.moretrees.eco";
5
5
  export const moreTreesTransactionOrigin = "https://transaction-management-service.platform.moretrees.eco";
6
- export const moreTreesRequestTimeoutMs = 30_000;
7
6
  const moreTreesAccountPath = "/user-management-api/external/accounts";
8
7
  const moreTreesForestPath = "/user-management-api/external/forest";
9
8
  const moreTreesProjectsPath = "/project-management-api/external/projects";
@@ -15,7 +14,7 @@ export const moreTreesActionHandlers = {
15
14
  plant_trees: executePlantTrees,
16
15
  };
17
16
  export async function validateMoreTreesCredential(input, fetcher) {
18
- const apiKey = requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)).trim();
17
+ const apiKey = requiredString(input.apiKey, "apiKey", providerInputError).trim();
19
18
  const accountCode = requireCredentialValue(input.accountCode, "accountCode");
20
19
  const publicValidationKey = requireCredentialValue(input.publicValidationKey, "publicValidationKey");
21
20
  const account = requireObjectResponse(await requestMoreTreesJson({
@@ -56,7 +55,7 @@ async function executeGetAccount(input, fetcher) {
56
55
  const accountCode = resolveStoredAccountCode(input.providerMetadata);
57
56
  return requestMoreTreesJson({
58
57
  url: `${moreTreesAccountOrigin}${moreTreesAccountPath}/${encodeURIComponent(accountCode)}`,
59
- apiKey: requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)).trim(),
58
+ apiKey: requiredString(input.apiKey, "apiKey", providerInputError).trim(),
60
59
  fetcher,
61
60
  phase: "execute",
62
61
  });
@@ -83,7 +82,7 @@ async function executePlantTrees(input, fetcher) {
83
82
  return requestMoreTreesJson({
84
83
  url: `${moreTreesTransactionOrigin}${moreTreesPlantPath}`,
85
84
  method: "POST",
86
- apiKey: requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)).trim(),
85
+ apiKey: requiredString(input.apiKey, "apiKey", providerInputError).trim(),
87
86
  body: compactObject({
88
87
  payment_account_code: resolveStoredAccountCode(input.providerMetadata),
89
88
  test: input.input.test,
@@ -155,7 +154,7 @@ async function requestMoreTreesJson(input) {
155
154
  if (input.body !== undefined) {
156
155
  headers.set("content-type", "application/json");
157
156
  }
158
- const timeout = createProviderTimeout(undefined, moreTreesRequestTimeoutMs);
157
+ const timeout = createProviderTimeout(undefined);
159
158
  try {
160
159
  const response = await input.fetcher(input.url, {
161
160
  method: input.method ?? "GET",
@@ -174,7 +173,7 @@ async function requestMoreTreesJson(input) {
174
173
  throw error;
175
174
  }
176
175
  if (timeout.didTimeout() || isAbortLikeError(error)) {
177
- throw new ProviderRequestError(504, `More Trees request timed out after ${moreTreesRequestTimeoutMs / 1000} seconds`);
176
+ throw new ProviderRequestError(504, `More Trees request timed out after ${defaultProviderRequestTimeoutMs / 1000} seconds`);
178
177
  }
179
178
  throw new ProviderRequestError(502, error instanceof Error ? `More Trees request failed: ${error.message}` : "More Trees request failed");
180
179
  }
@@ -204,7 +203,7 @@ function createMoreTreesError(response, payload, phase) {
204
203
  return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
205
204
  }
206
205
  if ([400, 404, 406, 422].includes(response.status)) {
207
- return new ProviderRequestError(400, message);
206
+ return providerInputError(message);
208
207
  }
209
208
  return new ProviderRequestError(response.status || 500, message);
210
209
  }
@@ -132,11 +132,11 @@ function mapMoxieError(status, payload, validation) {
132
132
  optionalString(record?.error) ||
133
133
  `Moxie request failed with status ${status}`;
134
134
  if (validation && [400, 401, 403].includes(status))
135
- return new ProviderRequestError(400, message);
135
+ return providerInputError(message);
136
136
  if (status === 401 || status === 403)
137
137
  return new ProviderRequestError(401, message);
138
138
  if ([400, 404, 422].includes(status))
139
- return new ProviderRequestError(400, message);
139
+ return providerInputError(message);
140
140
  if (status === 429)
141
141
  return new ProviderRequestError(429, message);
142
142
  return new ProviderRequestError(status || 502, message);
@@ -1,6 +1,6 @@
1
1
  import { optionalRecord, optionalString } from "../../core/cast.js";
2
2
  import { jsonObject, queryParams } from "../../core/request.js";
3
- import { createProviderTimeout, providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
3
+ import { createProviderTimeout, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  export const msg91ApiBaseUrl = "https://control.msg91.com";
5
5
  const msg91RequestTimeoutMs = 15_000;
6
6
  export const msg91ActionHandlers = {
@@ -238,7 +238,7 @@ function createMsg91HttpError(response, payload) {
238
238
  return new ProviderRequestError(401, message);
239
239
  }
240
240
  if (response.status === 400 || response.status === 404 || response.status === 422) {
241
- return new ProviderRequestError(400, message);
241
+ return providerInputError(message);
242
242
  }
243
243
  return new ProviderRequestError(response.status || 500, message);
244
244
  }
@@ -258,9 +258,9 @@ function throwOnMsg91Error(payload, actionName) {
258
258
  throw new ProviderRequestError(429, message);
259
259
  }
260
260
  if (isInvalidInputMessage(lowerMessage)) {
261
- throw new ProviderRequestError(400, message);
261
+ throw providerInputError(message);
262
262
  }
263
- throw new ProviderRequestError(502, message);
263
+ throw providerResponseError(message);
264
264
  }
265
265
  function throwOnMsg91AuthError(payload) {
266
266
  const message = extractErrorMessage(payload);
@@ -167,7 +167,7 @@ function createMxError(response, payload, phase) {
167
167
  return new ProviderRequestError(429, message);
168
168
  }
169
169
  if (phase === "validate" || response.status < 500) {
170
- return new ProviderRequestError(400, message);
170
+ return providerInputError(message);
171
171
  }
172
172
  return new ProviderRequestError(response.status || 502, message);
173
173
  }
@@ -1,10 +1,9 @@
1
1
  import { compactObject, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl } from "../../core/request.js";
3
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  const needleApiBaseUrl = "https://needle.app";
5
5
  const needleSearchBaseUrl = "https://search.needle.app";
6
6
  const needleValidationPath = "/api/v1/collections";
7
- const needleDefaultRequestTimeoutMs = 30_000;
8
7
  export const needleActionHandlers = {
9
8
  list_collections: (_input, context) => listCollections(context),
10
9
  create_collection: (input, context) => createCollection(input, context),
@@ -154,7 +153,7 @@ async function needleRequest(context, input) {
154
153
  }
155
154
  }
156
155
  async function needleRawRequest(context, input) {
157
- const timeout = createProviderTimeout(context.signal, needleDefaultRequestTimeoutMs);
156
+ const timeout = createProviderTimeout(context.signal);
158
157
  try {
159
158
  return await context.fetcher(new URL(input.path, input.baseUrl ?? needleApiBaseUrl), {
160
159
  method: input.method ?? "GET",
@@ -169,7 +168,7 @@ async function needleRawRequest(context, input) {
169
168
  }
170
169
  catch (error) {
171
170
  if (timeout.didTimeout() && isAbortLikeError(error)) {
172
- throw new ProviderRequestError(504, `Needle request timed out after ${Math.max(1, Math.ceil(needleDefaultRequestTimeoutMs / 1000))} seconds`);
171
+ throw new ProviderRequestError(504, `Needle request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
173
172
  }
174
173
  throw new ProviderRequestError(502, error instanceof Error ? `Needle request failed: ${error.message}` : "Needle request failed");
175
174
  }
@@ -1,10 +1,9 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
3
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
4
4
  import { netlifyConnectorScopes } from "./actions.js";
5
5
  export const netlifyApiBaseUrl = "https://api.netlify.com/api/v1";
6
6
  const netlifyValidationPath = "/user";
7
- const sourceFetchTimeoutMs = 30_000;
8
7
  const maxSourceBytes = 100 * 1024 * 1024;
9
8
  export const netlifyActionHandlers = {
10
9
  async get_current_user(_input, context) {
@@ -439,7 +438,7 @@ function readDeployFilePath(value) {
439
438
  async function downloadSourceFile(sourceUrl, fieldName, fetcher) {
440
439
  const url = validateSourceUrl(sourceUrl, fieldName);
441
440
  const controller = new AbortController();
442
- const timeout = setTimeout(() => controller.abort(), sourceFetchTimeoutMs);
441
+ const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
443
442
  try {
444
443
  const response = await fetcher(url, {
445
444
  signal: controller.signal,
@@ -1,6 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
3
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, } from "../provider-runtime.js";
4
4
  const service = "niftyimages";
5
5
  const niftyimagesApiBaseUrl = "https://api.niftyimages.com/v1";
6
6
  const niftyimagesMaxResponseBytes = 10 * 1024 * 1024;
@@ -158,7 +158,7 @@ function mapNiftyimagesError(status, payload, phase) {
158
158
  return new ProviderRequestError(429, message);
159
159
  }
160
160
  if (phase === "validate" && status >= 400 && status < 500) {
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(401, message);
@@ -145,7 +145,7 @@ function mapNorthbeamError(status, payload, phase) {
145
145
  return new ProviderRequestError(429, message);
146
146
  }
147
147
  if (phase === "validate" && status >= 400 && status < 500) {
148
- return new ProviderRequestError(400, message);
148
+ return providerInputError(message);
149
149
  }
150
150
  if (phase === "execute" && (status === 401 || status === 403)) {
151
151
  return new ProviderRequestError(status, message);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString, requiredString } 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 = "nozbe_teams";
4
4
  const nozbeTeamsApiBaseUrl = "https://api4.nozbe.com/v1/api";
5
5
  const nozbeTeamsValidationPath = "/teams";
@@ -170,12 +170,12 @@ function buildNozbeError(response, text, phase) {
170
170
  return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
171
171
  }
172
172
  if ([400, 404, 409, 422].includes(response.status)) {
173
- return new ProviderRequestError(400, message);
173
+ return providerInputError(message);
174
174
  }
175
175
  if (response.status === 429) {
176
176
  return new ProviderRequestError(429, message);
177
177
  }
178
- return new ProviderRequestError(502, message);
178
+ return providerResponseError(message);
179
179
  }
180
180
  function readNozbeErrorMessage(status, text) {
181
181
  const fallback = `Nozbe request failed with status ${status}`;
@@ -194,7 +194,7 @@ function resourcePath(resource, id) {
194
194
  return `/${resource}/${encodeURIComponent(requireResourceId(id))}`;
195
195
  }
196
196
  function requireResourceId(value) {
197
- return requiredString(value, "Nozbe resource ID", (message) => new ProviderRequestError(400, message));
197
+ return requiredString(value, "Nozbe resource ID", providerInputError);
198
198
  }
199
199
  function validateUpdateBody(body, resource) {
200
200
  if (Object.keys(body).length === 0) {
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, providerUserAgent, ProviderRequestError, readProviderTextBody, providerResponseError, } from "../provider-runtime.js";
3
3
  export const npmRegistryBaseUrl = "https://registry.npmjs.org";
4
4
  export const npmDownloadsBaseUrl = "https://api.npmjs.org";
5
5
  export const npmValidationPath = "/-/whoami";
@@ -259,7 +259,7 @@ function createNpmError(response, payload, phase) {
259
259
  if (response.status === 429) {
260
260
  return new ProviderRequestError(429, message);
261
261
  }
262
- return new ProviderRequestError(502, message);
262
+ return providerResponseError(message);
263
263
  }
264
264
  function extractNpmErrorMessage(payload) {
265
265
  if (typeof payload === "string") {
@@ -435,13 +435,13 @@ async function mapWithConcurrency(items, concurrency, worker) {
435
435
  function requireObject(value, message) {
436
436
  const object = optionalRecord(value);
437
437
  if (!object) {
438
- throw new ProviderRequestError(502, message);
438
+ throw providerResponseError(message);
439
439
  }
440
440
  return object;
441
441
  }
442
442
  function requireArray(value, message) {
443
443
  if (!Array.isArray(value)) {
444
- throw new ProviderRequestError(502, message);
444
+ throw providerResponseError(message);
445
445
  }
446
446
  return value;
447
447
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, readProviderTextBody, requiredResponseRecord, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, readProviderTextBody, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
3
3
  export const nusiiProposalsApiBaseUrl = "https://app.nusii.com/api/v2/";
4
4
  const clientWriteFields = [
5
5
  "email",
@@ -302,7 +302,7 @@ function createNusiiError(status, payload, phase) {
302
302
  return new ProviderRequestError(429, message);
303
303
  }
304
304
  if (phase === "validate" && (status === 401 || status === 403)) {
305
- return new ProviderRequestError(400, message);
305
+ return providerInputError(message);
306
306
  }
307
307
  if (phase === "execute" && status === 401) {
308
308
  return new ProviderRequestError(401, message);
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { integer, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
3
3
  import { readBoundedResponseBytes } from "../../core/request.js";
4
- import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderTextBody, requireCustomCredential, } from "../provider-runtime.js";
4
+ import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderTextBody, requireCustomCredential, providerInputError, } from "../provider-runtime.js";
5
5
  const service = "ocr_web_service";
6
6
  const ocrWebServiceApiBaseUrl = "https://www.ocrwebservice.com/restservices";
7
7
  const ocrWebServiceMaxResponseBytes = 10 * 1024 * 1024;
@@ -138,7 +138,7 @@ async function downloadFileUrl(value, signal) {
138
138
  return await readBoundedResponseBytes(response, {
139
139
  maxBytes: ocrWebServiceMaxInputBytes,
140
140
  fieldName: "fileUrl payload",
141
- createError: (message) => new ProviderRequestError(400, message),
141
+ createError: providerInputError,
142
142
  });
143
143
  }
144
144
  catch (error) {
@@ -257,13 +257,13 @@ function mapOcrWebServiceHttpError(status, payload, phase) {
257
257
  return new ProviderRequestError(429, message);
258
258
  }
259
259
  if (phase === "validate" && [400, 401, 402].includes(status)) {
260
- return new ProviderRequestError(400, message);
260
+ return providerInputError(message);
261
261
  }
262
262
  if (phase === "execute" && (status === 401 || status === 402)) {
263
263
  return new ProviderRequestError(401, message);
264
264
  }
265
265
  if (phase === "execute" && status === 400) {
266
- return new ProviderRequestError(400, message);
266
+ return providerInputError(message);
267
267
  }
268
268
  return new ProviderRequestError(status >= 500 ? 502 : status || 502, message);
269
269
  }
@@ -1,7 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalNumber, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
3
3
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
4
- import { createProviderFetch, createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, } from "../provider-runtime.js";
4
+ import { createProviderFetch, createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, providerInputError, } from "../provider-runtime.js";
5
5
  const service = "octopus_deploy";
6
6
  const validationPath = "/users/me";
7
7
  const maxResponseBytes = 10 * 1024 * 1024;
@@ -262,10 +262,10 @@ function mapHttpError(status, message, phase) {
262
262
  return new ProviderRequestError(401, message);
263
263
  }
264
264
  if (status === 401 || status === 403 || (phase === "validate" && status === 404)) {
265
- return new ProviderRequestError(400, message);
265
+ return providerInputError(message);
266
266
  }
267
267
  if (status === 400 || status === 404 || status === 422) {
268
- return new ProviderRequestError(400, message);
268
+ return providerInputError(message);
269
269
  }
270
270
  if (status === 429) {
271
271
  return new ProviderRequestError(429, message);
@@ -1,8 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { optionalRecord, optionalString } from "../../core/cast.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 oksignApiBaseUrl = "https://www.oksign.be";
5
- const oksignDefaultTimeoutMs = 30_000;
6
5
  const oksignCreditsPath = "/services/rest/v1/credits/retrieve";
7
6
  const oksignActiveDocumentsPath = "/services/rest/v1/documents/active";
8
7
  const oksignMetadataV2Path = "/services/rest/v2/metadata/retrieve";
@@ -137,7 +136,7 @@ async function listUsers(context) {
137
136
  };
138
137
  }
139
138
  async function requestOksignJson(input) {
140
- const timeout = createProviderTimeout(input.signal, oksignDefaultTimeoutMs);
139
+ const timeout = createProviderTimeout(input.signal);
141
140
  try {
142
141
  const response = await input.fetcher(new URL(input.path, oksignApiBaseUrl), {
143
142
  method: "GET",
@@ -158,7 +157,7 @@ async function requestOksignJson(input) {
158
157
  throw error;
159
158
  }
160
159
  if (timeout.didTimeout() || isAbortLikeError(error)) {
161
- throw new ProviderRequestError(504, `OKSign request timed out after ${Math.max(1, Math.ceil(oksignDefaultTimeoutMs / 1000))} seconds`);
160
+ throw new ProviderRequestError(504, `OKSign request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
162
161
  }
163
162
  throw new ProviderRequestError(502, error instanceof Error ? `OKSign request failed: ${error.message}` : "OKSign request failed");
164
163
  }
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, requiredRecord } from "../../core/cast.js";
3
3
  import { storeResponseInTransit } from "../../core/request.js";
4
- import { defineOAuthProviderExecutors, defineProviderProxy, ProviderRequestError, readTransitFileInput, } from "../provider-runtime.js";
4
+ import { defineOAuthProviderExecutors, defineProviderProxy, ProviderRequestError, readTransitFileInput, providerInputError, providerResponseError, } from "../provider-runtime.js";
5
5
  import { oneDriveItemChanged } from "./trigger-on-item-changed.js";
6
6
  const graphBaseUrl = "https://graph.microsoft.com/v1.0";
7
7
  const graphOrigin = new URL(graphBaseUrl).origin;
@@ -224,7 +224,7 @@ export async function assertOneDriveResponse(response) {
224
224
  }
225
225
  const { code, message } = await extractOneDriveError(response);
226
226
  if (response.status === 400) {
227
- throw new ProviderRequestError(400, message);
227
+ throw providerInputError(message);
228
228
  }
229
229
  if (response.status === 401) {
230
230
  throw new ProviderRequestError(401, message);
@@ -236,10 +236,10 @@ export async function assertOneDriveResponse(response) {
236
236
  throw new ProviderRequestError(403, message);
237
237
  }
238
238
  if (response.status === 404) {
239
- throw new ProviderRequestError(400, message);
239
+ throw providerInputError(message);
240
240
  }
241
241
  if (response.status === 409 || response.status === 412) {
242
- throw new ProviderRequestError(400, message);
242
+ throw providerInputError(message);
243
243
  }
244
244
  if (response.status === 429) {
245
245
  throw new ProviderRequestError(429, message);
@@ -774,7 +774,7 @@ function resolveUploadChunkSize(remainingBytes) {
774
774
  async function buildUploadSessionError(response) {
775
775
  const { message } = await extractOneDriveError(response);
776
776
  if (response.status === 400 || response.status === 409 || response.status === 412) {
777
- return new ProviderRequestError(400, message);
777
+ return providerInputError(message);
778
778
  }
779
779
  if (response.status === 404) {
780
780
  return new ProviderRequestError(404, "one_drive upload session expired");
@@ -1009,7 +1009,7 @@ function requireString(value, fieldName) {
1009
1009
  return parsed;
1010
1010
  }
1011
1011
  function asObject(value) {
1012
- return requiredRecord(value, "object input", (message) => new ProviderRequestError(502, message));
1012
+ return requiredRecord(value, "object input", providerResponseError);
1013
1013
  }
1014
1014
  function readOptionalPresentString(input, key) {
1015
1015
  if (!(key in input)) {
@@ -141,7 +141,7 @@ async function readOnePasswordEventsPayload(response) {
141
141
  function createOnePasswordEventsError(status, payload, phase) {
142
142
  const message = extractOnePasswordEventsErrorMessage(payload) ?? `1Password Events request failed with status ${status}`;
143
143
  if (phase === "validate" && (status === 401 || status === 403)) {
144
- return new ProviderRequestError(400, message);
144
+ return providerInputError(message);
145
145
  }
146
146
  if (phase === "execute" && (status === 401 || status === 403)) {
147
147
  return new ProviderRequestError(status, message);