@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.
- package/README.md +4 -2
- package/assets/open-connector/catalog/apps/allratestoday.json +174 -0
- package/assets/open-connector/catalog/apps/slackbot.json +20 -1
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +1 -1
- package/src/connection-error.d.ts +7 -0
- package/src/connection-error.js +10 -0
- package/src/connection-service.d.ts +2 -50
- package/src/connection-service.js +6 -130
- package/src/connection-store.d.ts +41 -0
- package/src/connection-store.js +1 -0
- package/src/core/guarded-fetch.d.ts +3 -0
- package/src/core/guarded-fetch.js +8 -1
- package/src/core/provider-network-policy.d.ts +15 -0
- package/src/core/provider-network-policy.js +11 -0
- package/src/core/request.d.ts +18 -14
- package/src/core/request.js +11 -35
- package/src/credential-resolver.d.ts +24 -0
- package/src/credential-resolver.js +131 -0
- package/src/mcp.js +1 -1
- package/src/oauth/oauth-client-config-service.d.ts +1 -1
- package/src/oauth/oauth-client-config-service.js +14 -2
- package/src/oauth/oauth-credential-refresh-service.js +1 -1
- package/src/oauth/oauth-flow-service.d.ts +9 -1
- package/src/oauth/oauth-flow-service.js +11 -1
- package/src/providers/abuseipdb/executors.js +3 -4
- package/src/providers/action-contracts.generated.d.ts +1 -0
- package/src/providers/addressfinder/executors.js +2 -3
- package/src/providers/aeroleads/executors.js +3 -3
- package/src/providers/affinity/runtime.js +6 -7
- package/src/providers/aftership/executors.js +2 -2
- package/src/providers/agent_mail/runtime.js +2 -2
- package/src/providers/agentql/runtime.js +2 -2
- package/src/providers/agenty/runtime.js +5 -6
- package/src/providers/agiled/runtime.d.ts +0 -1
- package/src/providers/agiled/runtime.js +2 -3
- package/src/providers/agility/runtime.js +2 -3
- package/src/providers/ahrefs/runtime.js +3 -3
- package/src/providers/aifinmarket/runtime.js +6 -7
- package/src/providers/airtable/executors.js +3 -3
- package/src/providers/alchemy/runtime.js +2 -2
- package/src/providers/algolia/runtime.js +3 -3
- package/src/providers/aliyun_oss/executors.js +7 -7
- package/src/providers/allratestoday/executors.d.ts +3 -0
- package/src/providers/allratestoday/executors.js +18 -0
- package/src/providers/allratestoday/runtime.d.ts +17 -0
- package/src/providers/allratestoday/runtime.js +104 -0
- package/src/providers/alpaca/runtime.js +2 -3
- package/src/providers/alpha_vantage/runtime.js +2 -2
- package/src/providers/alt_text_ai/runtime.js +2 -2
- package/src/providers/altiria/executors.js +3 -3
- package/src/providers/amap/runtime.js +3 -3
- package/src/providers/ambee/runtime.js +2 -2
- package/src/providers/ambivo/executors.js +3 -3
- package/src/providers/amilia/runtime.js +1 -1
- package/src/providers/amplemarket/runtime.js +2 -2
- package/src/providers/amplitude/runtime.js +3 -3
- package/src/providers/anysearch/runtime.js +4 -4
- package/src/providers/apaleo/runtime.js +2 -2
- package/src/providers/api_sports/executors.js +3 -4
- package/src/providers/apiverve/executors.js +2 -3
- package/src/providers/apollo/executors.js +2 -3
- package/src/providers/appcircle/runtime.js +5 -5
- package/src/providers/appdrag/executors.js +2 -3
- package/src/providers/arcgis_online/executors.js +2 -2
- package/src/providers/auth0_management/runtime.js +2 -3
- package/src/providers/autoblogger/executors.js +3 -3
- package/src/providers/baidu_maps/runtime.js +3 -3
- package/src/providers/baidu_netdisk/runtime-mcp.js +3 -4
- package/src/providers/bark/executors.js +5 -5
- package/src/providers/bitrise/runtime.js +3 -3
- package/src/providers/bouncer/executors.js +3 -4
- package/src/providers/browse_ai/runtime.js +3 -4
- package/src/providers/browserstack/executors.js +6 -7
- package/src/providers/buildkite/runtime.js +3 -3
- package/src/providers/bunnycdn/runtime.js +3 -3
- package/src/providers/businessmap/runtime.js +6 -7
- package/src/providers/buttondown/runtime.js +2 -2
- package/src/providers/byteforms/runtime.js +2 -2
- package/src/providers/calendly/runtime.js +2 -2
- package/src/providers/captainbi/runtime.js +6 -6
- package/src/providers/castingwords/runtime.js +1 -1
- package/src/providers/chatpdf/runtime.js +4 -4
- package/src/providers/check/executors.js +3 -4
- package/src/providers/checkly/executors.js +3 -4
- package/src/providers/chengxin/runtime.js +3 -3
- package/src/providers/cincopa/executors.js +3 -4
- package/src/providers/circle/executors.js +3 -4
- package/src/providers/clearout/executors.js +1 -2
- package/src/providers/clickhelp/runtime.js +5 -5
- package/src/providers/clickhouse/runtime.js +4 -4
- package/src/providers/clinicalkey/runtime.js +3 -3
- package/src/providers/clinicaltrials_gov/runtime.js +4 -5
- package/src/providers/clockify/runtime.js +4 -4
- package/src/providers/close/runtime.js +3 -3
- package/src/providers/cloudconvert/runtime.js +8 -9
- package/src/providers/cloudflare_dns/runtime.js +2 -2
- package/src/providers/cloudflare_email_routing/runtime.js +2 -2
- package/src/providers/cloudflare_r2/runtime.js +5 -5
- package/src/providers/cloudflare_worker/runtime.js +10 -10
- package/src/providers/cloudinary/runtime.js +4 -4
- package/src/providers/cloudlayer/runtime.js +5 -5
- package/src/providers/codacy/runtime.js +2 -2
- package/src/providers/codemagic/runtime.js +2 -2
- package/src/providers/confluence/executors.js +4 -4
- package/src/providers/confluence/runtime.d.ts +0 -1
- package/src/providers/confluence/runtime.js +6 -7
- package/src/providers/contactout/runtime.js +5 -5
- package/src/providers/contentful/runtime.js +2 -2
- package/src/providers/contentstack_content_delivery/runtime.js +1 -1
- package/src/providers/cronly/runtime.js +2 -2
- package/src/providers/crossref/runtime.js +3 -3
- package/src/providers/cutt_ly/runtime.js +3 -3
- package/src/providers/cyberimpact/runtime.js +3 -3
- package/src/providers/dachser/executors.js +2 -2
- package/src/providers/dailybot/runtime.js +1 -1
- package/src/providers/databox/runtime.js +2 -2
- package/src/providers/databricks/runtime.js +2 -2
- package/src/providers/datacite/runtime.js +1 -1
- package/src/providers/datadog/executors.js +3 -4
- package/src/providers/datascope/runtime.js +2 -2
- package/src/providers/daytona/executors.js +3 -3
- package/src/providers/deepgram/runtime.js +2 -2
- package/src/providers/deepl/runtime.js +4 -4
- package/src/providers/detrack/executors.js +5 -5
- package/src/providers/deutschlandgpt/runtime.js +2 -2
- package/src/providers/dialmycalls/runtime.js +4 -4
- package/src/providers/diffbot/executors.js +4 -4
- package/src/providers/digistore24/executors.js +3 -3
- package/src/providers/dingtalk_bot/executors.js +1 -1
- package/src/providers/discourse/executors.d.ts +0 -1
- package/src/providers/discourse/executors.js +6 -7
- package/src/providers/docugenerate/runtime.js +3 -3
- package/src/providers/doppler/runtime.shared.js +3 -3
- package/src/providers/doppler_marketing_automation/runtime.js +4 -4
- package/src/providers/dovetail/runtime.js +2 -2
- package/src/providers/dropcontact/runtime.js +3 -3
- package/src/providers/dub/executors.js +6 -6
- package/src/providers/dumplingai/runtime.js +2 -2
- package/src/providers/elevenlabs/executors.js +4 -4
- package/src/providers/elevenreader/runtime.js +1 -1
- package/src/providers/emailoctopus/runtime.js +4 -4
- package/src/providers/embase/runtime.js +3 -3
- package/src/providers/emelia/executors.js +2 -2
- package/src/providers/enigma/executors.js +3 -3
- package/src/providers/eodhd_apis/executors.js +2 -2
- package/src/providers/eventzilla/runtime.js +3 -4
- package/src/providers/evervault/runtime.js +1 -1
- package/src/providers/excalidraw_mcp/runtime.js +3 -4
- package/src/providers/excel/runtime.js +6 -6
- package/src/providers/expofp/runtime.js +2 -2
- package/src/providers/faktoora/runtime.js +5 -5
- package/src/providers/fast_note_sync/runtime.js +2 -2
- package/src/providers/feathery/executors.js +2 -3
- package/src/providers/feishu_app_bot/executors.js +2 -3
- package/src/providers/feishu_custom_bot/executors.js +2 -3
- package/src/providers/ffhub/executors.js +2 -3
- package/src/providers/fidel_api/executors.js +2 -3
- package/src/providers/files_com/executors.js +2 -3
- package/src/providers/fireberry/runtime.d.ts +0 -1
- package/src/providers/fireberry/runtime.js +3 -4
- package/src/providers/firehydrant/executors.js +2 -3
- package/src/providers/float/executors.js +2 -3
- package/src/providers/flomo/executors.js +5 -6
- package/src/providers/flowiseai/executors.js +2 -3
- package/src/providers/fluxguard/executors.js +2 -3
- package/src/providers/folk/executors.js +2 -3
- package/src/providers/football_data/executors.js +2 -3
- package/src/providers/forem/executors.js +2 -3
- package/src/providers/formbricks/executors.js +2 -3
- package/src/providers/formsite/executors.js +3 -4
- package/src/providers/formspree/executors.js +2 -2
- package/src/providers/freshdesk/executors.js +3 -4
- package/src/providers/freshservice/executors.js +3 -4
- package/src/providers/freshteam/runtime.js +3 -4
- package/src/providers/full_contact/executors.js +3 -3
- package/src/providers/fusion-api/runtime.js +2 -3
- package/src/providers/gagelist/executors.js +3 -3
- package/src/providers/gainsight_nxt/executors.js +2 -2
- package/src/providers/gamma/executors.js +4 -3
- package/src/providers/gangtise/runtime.js +3 -4
- package/src/providers/gatherup/runtime.js +1 -1
- package/src/providers/geckoboard/executors.js +2 -3
- package/src/providers/gemini/runtime.d.ts +0 -1
- package/src/providers/gemini/runtime.js +5 -6
- package/src/providers/genpage/runtime.js +2 -2
- package/src/providers/geokeo/executors.js +4 -4
- package/src/providers/getnote/runtime.js +2 -3
- package/src/providers/github/runtime-shared.js +2 -2
- package/src/providers/glyphic/runtime.js +3 -4
- package/src/providers/gmail/executors.js +125 -27
- package/src/providers/gong/runtime.js +6 -7
- package/src/providers/googlecalendar/runtime-shared.js +3 -4
- package/src/providers/googledrive/runtime-request.js +2 -3
- package/src/providers/googlesheets/runtime-shared.js +3 -4
- package/src/providers/gorgias/runtime.js +4 -4
- package/src/providers/gotify/executors.js +7 -8
- package/src/providers/greenhouse/executors.js +3 -3
- package/src/providers/gumloop/executors.js +2 -3
- package/src/providers/gumroad/executors.js +2 -3
- package/src/providers/habitica/executors.js +2 -3
- package/src/providers/hackerrank_work/executors.js +2 -3
- package/src/providers/harvest/executors.js +3 -4
- package/src/providers/haveibeenpwned/executors.js +2 -3
- package/src/providers/headout/executors.js +3 -4
- package/src/providers/healthchecks_io/executors.js +2 -3
- package/src/providers/helium10/runtime.js +4 -5
- package/src/providers/helpdesk/runtime.js +4 -4
- package/src/providers/home_assistant/runtime-ws.js +9 -10
- package/src/providers/hotjar/executors.js +4 -4
- package/src/providers/httpsms/runtime.js +3 -4
- package/src/providers/hub_planner/executors.js +3 -3
- package/src/providers/hubspot/runtime.js +3 -4
- package/src/providers/humaans/runtime.js +3 -3
- package/src/providers/hunter/runtime.js +3 -3
- package/src/providers/icypeas/executors.js +3 -4
- package/src/providers/ima/runtime.js +7 -7
- package/src/providers/infolobby/runtime.js +6 -6
- package/src/providers/instabot/runtime.js +6 -6
- package/src/providers/instatus/runtime.js +4 -4
- package/src/providers/intuiface/executors.js +3 -3
- package/src/providers/iplocate/runtime.js +4 -5
- package/src/providers/ipregistry/executors.js +2 -2
- package/src/providers/jiminny/runtime.js +4 -4
- package/src/providers/jin10/executors.js +4 -5
- package/src/providers/jira/executors.js +4 -4
- package/src/providers/kaleido/runtime.js +2 -2
- package/src/providers/kandji/runtime.js +2 -2
- package/src/providers/keygen/executors.js +4 -4
- package/src/providers/keyword/runtime.js +2 -2
- package/src/providers/kie_ai/executors.js +1 -1
- package/src/providers/kintone/runtime.js +1 -1
- package/src/providers/kit/runtime.js +2 -2
- package/src/providers/klangio/runtime.js +4 -4
- package/src/providers/klaviyo/executors.js +1 -1
- package/src/providers/klazify/executors.js +3 -3
- package/src/providers/klipfolio/runtime.js +3 -3
- package/src/providers/knack/executors.js +1 -1
- package/src/providers/kommo/runtime.js +2 -2
- package/src/providers/kontent_ai/executors.js +3 -4
- package/src/providers/l2s/executors.js +3 -4
- package/src/providers/latchshot/executors.js +2 -2
- package/src/providers/leadboxer/runtime.js +4 -4
- package/src/providers/leadiq/runtime.js +4 -4
- package/src/providers/linguapop/runtime.js +1 -1
- package/src/providers/lingvanex_translation_api/runtime.js +5 -6
- package/src/providers/lingxing_mcp/runtime.js +3 -4
- package/src/providers/linkup/runtime.js +5 -6
- package/src/providers/liveagent/executors.js +6 -6
- package/src/providers/loops/executors.js +2 -2
- package/src/providers/loyjoy/runtime.js +2 -2
- package/src/providers/loyverse/executors.js +4 -4
- package/src/providers/lusha/runtime.js +3 -3
- package/src/providers/mailbluster/runtime.js +3 -4
- package/src/providers/mailcoach/runtime.js +4 -4
- package/src/providers/mailgenius/executors.js +3 -4
- package/src/providers/mailjet/runtime.js +3 -3
- package/src/providers/mails_so/runtime.js +1 -1
- package/src/providers/mailsoftly/runtime.js +5 -5
- package/src/providers/mailtrap/runtime.js +4 -5
- package/src/providers/manus/runtime.js +3 -3
- package/src/providers/mautic/runtime.js +3 -3
- package/src/providers/megaventory/runtime.js +3 -3
- package/src/providers/memberstack/runtime.js +2 -2
- package/src/providers/mendeley/executors.js +2 -3
- package/src/providers/mindbody/runtime.js +3 -3
- package/src/providers/minerstat/executors.js +3 -3
- package/src/providers/mintlify/runtime.js +3 -3
- package/src/providers/missive/executors.js +3 -5
- package/src/providers/mixpanel/executors.js +3 -3
- package/src/providers/mobile_text_alerts/runtime.js +3 -3
- package/src/providers/mocean/executors.js +3 -3
- package/src/providers/moco/executors.js +5 -5
- package/src/providers/moesif/runtime.js +4 -4
- package/src/providers/monday/runtime-common.js +3 -3
- package/src/providers/monica_crm/runtime.js +4 -4
- package/src/providers/moorcheh/runtime.js +3 -3
- package/src/providers/more_trees/runtime.d.ts +0 -1
- package/src/providers/more_trees/runtime.js +7 -8
- package/src/providers/moxie/runtime.js +2 -2
- package/src/providers/msg91/runtime.js +4 -4
- package/src/providers/mx/runtime.js +1 -1
- package/src/providers/needle/runtime.js +3 -4
- package/src/providers/netlify/runtime.js +2 -3
- package/src/providers/niftyimages/executors.js +2 -2
- package/src/providers/northbeam/runtime.js +1 -1
- package/src/providers/nozbe_teams/executors.js +4 -4
- package/src/providers/npm/runtime.js +4 -4
- package/src/providers/nusii_proposals/runtime.js +2 -2
- package/src/providers/ocr_web_service/executors.js +4 -4
- package/src/providers/octopus_deploy/executors.js +3 -3
- package/src/providers/oksign/runtime.js +3 -4
- package/src/providers/one_drive/executors.js +6 -6
- package/src/providers/one_password_events/runtime.js +1 -1
- package/src/providers/onfleet/runtime.js +3 -3
- package/src/providers/onlyoffice_docspace/runtime.js +4 -4
- package/src/providers/oomnitza/runtime.js +3 -4
- package/src/providers/otter_ai/executors.js +2 -2
- package/src/providers/oura/runtime.js +1 -1
- package/src/providers/paddle/executors.js +3 -3
- package/src/providers/pagerduty/runtime.js +2 -2
- package/src/providers/paradym/runtime.js +4 -4
- package/src/providers/parallel/runtime.js +3 -3
- package/src/providers/partner_stack_partner/runtime.js +1 -1
- package/src/providers/payrexx/runtime.js +5 -6
- package/src/providers/permit_io/runtime.js +2 -2
- package/src/providers/pinboard/executors.js +5 -6
- package/src/providers/pinpoint/runtime.js +2 -2
- package/src/providers/placid/runtime.js +3 -3
- package/src/providers/plain/runtime.js +5 -5
- package/src/providers/planetscale/runtime.js +2 -2
- package/src/providers/planhat/executors.js +6 -6
- package/src/providers/plausible_analytics/runtime.js +3 -3
- package/src/providers/posthog/runtime.js +3 -3
- package/src/providers/predis_ai/executors.js +3 -3
- package/src/providers/printavo/runtime.js +2 -2
- package/src/providers/prospeo/runtime.js +2 -3
- package/src/providers/provider-runtime.d.ts +13 -1
- package/src/providers/provider-runtime.js +25 -10
- package/src/providers/push_by_techulus/executors.js +3 -4
- package/src/providers/pushover/runtime.js +4 -5
- package/src/providers/pushsafer/runtime.js +4 -5
- package/src/providers/pylon/runtime.js +2 -2
- package/src/providers/qase/runtime.js +3 -3
- package/src/providers/qdrant/runtime.js +1 -1
- package/src/providers/qichacha/runtime.js +2 -2
- package/src/providers/qingflow/runtime.js +2 -2
- package/src/providers/quickchart/runtime.js +2 -2
- package/src/providers/quintadb/runtime.js +2 -2
- package/src/providers/quo/runtime.js +2 -2
- package/src/providers/rawg/runtime.js +4 -4
- package/src/providers/razorpay/runtime.js +4 -5
- package/src/providers/readme/runtime.js +6 -6
- package/src/providers/referralhero/runtime.js +3 -3
- package/src/providers/registry.generated.js +1 -0
- package/src/providers/render/executors.js +3 -3
- package/src/providers/respond_io/executors.js +3 -3
- package/src/providers/reversecontact/runtime.js +3 -3
- package/src/providers/ritekit/executors.js +2 -2
- package/src/providers/riveter/executors.js +2 -3
- package/src/providers/rocket_chat/executors.js +3 -4
- package/src/providers/rocket_reach/executors.js +3 -4
- package/src/providers/saucelabs/runtime.js +4 -4
- package/src/providers/scopus/runtime.js +3 -3
- package/src/providers/scrape_do/executors.js +2 -2
- package/src/providers/scraperapi/runtime.js +4 -4
- package/src/providers/scrapfly/executors.js +2 -2
- package/src/providers/scrapingant/executors.js +6 -7
- package/src/providers/scrapingbee/executors.js +3 -3
- package/src/providers/scrapingdog/executors.js +1 -1
- package/src/providers/screenshot_fyi/executors.js +3 -4
- package/src/providers/screenshotbase/runtime.js +3 -3
- package/src/providers/search_api/runtime.js +2 -2
- package/src/providers/securitytrails/executors.js +2 -2
- package/src/providers/semantic_scholar/executors.js +2 -2
- package/src/providers/sendbird/executors.js +2 -2
- package/src/providers/sendfox/executors.js +3 -3
- package/src/providers/sendgrid/executors.js +5 -5
- package/src/providers/sendmator/runtime.js +3 -4
- package/src/providers/seqera/runtime.js +3 -4
- package/src/providers/serveravatar/executors.js +3 -3
- package/src/providers/sheetdb/runtime.js +2 -2
- package/src/providers/short_menu/runtime.js +3 -3
- package/src/providers/shortcut/runtime.js +3 -3
- package/src/providers/shortpixel/runtime.js +2 -2
- package/src/providers/shotstack/runtime.js +4 -4
- package/src/providers/signpath/runtime.js +2 -2
- package/src/providers/signwell/runtime.js +5 -6
- package/src/providers/similarweb_digitalrank_api/runtime.js +3 -3
- package/src/providers/simla/runtime.js +5 -5
- package/src/providers/simplybook_me/executors.js +6 -6
- package/src/providers/sitespeakai/runtime.js +3 -3
- package/src/providers/slickdeals/runtime.js +2 -3
- package/src/providers/smartsuite/runtime.js +3 -3
- package/src/providers/sonarcloud/runtime.js +5 -5
- package/src/providers/sorftime/runtime.js +8 -8
- package/src/providers/spider/runtime.js +2 -2
- package/src/providers/splunk_http_event_collector/runtime.js +7 -8
- package/src/providers/sportsdata/runtime.js +4 -4
- package/src/providers/spyfu/runtime.js +4 -5
- package/src/providers/square/runtime.js +4 -4
- package/src/providers/stannp/runtime.js +2 -2
- package/src/providers/stripe/executors.js +2 -2
- package/src/providers/supermemory/runtime.js +3 -3
- package/src/providers/survey_monkey/runtime.js +3 -3
- package/src/providers/taiga/runtime.js +4 -4
- package/src/providers/talenox/executors.js +4 -4
- package/src/providers/tally/runtime.js +3 -3
- package/src/providers/tavily/runtime.js +3 -4
- package/src/providers/teamcamp/executors.js +2 -2
- package/src/providers/teamtailor/executors.js +2 -2
- package/src/providers/telegram/executors.js +6 -7
- package/src/providers/teltel/executors.js +2 -2
- package/src/providers/templated/executors.js +3 -3
- package/src/providers/tencent_docs/runtime.js +4 -4
- package/src/providers/tencent_maps/runtime.js +3 -3
- package/src/providers/textcortex/runtime.js +3 -3
- package/src/providers/the_cat_api/runtime.js +3 -3
- package/src/providers/the_colony/runtime.js +3 -3
- package/src/providers/the_odds_api/runtime.js +3 -4
- package/src/providers/the_official_board/runtime.js +4 -4
- package/src/providers/thehive/runtime.js +1 -1
- package/src/providers/tikhub/endpoint-catalog.js +2 -3
- package/src/providers/tiktok_business/runtime.js +2 -2
- package/src/providers/timecamp/runtime.js +2 -2
- package/src/providers/timelink/runtime.js +2 -2
- package/src/providers/totp/runtime.js +4 -5
- package/src/providers/trawlingweb/runtime.js +2 -2
- package/src/providers/trilium/runtime.js +2 -2
- package/src/providers/triple_whale/runtime.js +3 -3
- package/src/providers/truvera/runtime.js +2 -2
- package/src/providers/tuskr/runtime.js +2 -2
- package/src/providers/typebot/runtime.js +2 -2
- package/src/providers/typeform/runtime.js +2 -2
- package/src/providers/uptimerobot/executors.js +3 -4
- package/src/providers/v2ex/runtime.js +8 -9
- package/src/providers/valyu/runtime.js +3 -3
- package/src/providers/vapi/runtime.js +4 -4
- package/src/providers/vectorshift/runtime.js +3 -3
- package/src/providers/venafitlsprotectcloud/runtime.js +2 -3
- package/src/providers/venafitlsprotectdatacenter/runtime.js +2 -3
- package/src/providers/vida/runtime.js +4 -4
- package/src/providers/vonage/runtime.js +3 -3
- package/src/providers/walmart_marketplace/runtime.js +5 -5
- package/src/providers/weatherapi/executors.js +3 -4
- package/src/providers/web_of_science/runtime.js +4 -4
- package/src/providers/web_of_science_expanded/runtime.js +9 -9
- package/src/providers/webex/runtime.js +3 -3
- package/src/providers/webinarjam/runtime.js +4 -4
- package/src/providers/webscraping_ai/runtime.js +3 -3
- package/src/providers/webvizio/runtime.js +3 -4
- package/src/providers/wecom_bot/smart-runtime.js +4 -5
- package/src/providers/wecom_mcp/runtime.js +3 -4
- package/src/providers/wejam_ai/runtime.js +3 -3
- package/src/providers/wolfram_alpha_api/runtime.js +3 -3
- package/src/providers/woocommerce/runtime.js +1 -1
- package/src/providers/woodpecker_co/executors.js +3 -4
- package/src/providers/woot/runtime.js +6 -6
- package/src/providers/workable/runtime.js +3 -3
- package/src/providers/workday/runtime.js +4 -4
- package/src/providers/workiom/runtime.js +2 -2
- package/src/providers/workiz/runtime.js +2 -2
- package/src/providers/workpath/executors.js +3 -4
- package/src/providers/worksnaps/executors.js +2 -2
- package/src/providers/y_gy/runtime.js +2 -2
- package/src/providers/zenscrape/runtime.js +3 -3
- package/src/providers/zep/runtime.js +4 -4
- package/src/providers/zeplin/runtime.js +2 -2
- package/src/providers/zhihu/executors.js +6 -6
- package/src/providers/zylvie/runtime.js +4 -4
- package/src/saas/saas-cleanup-service.d.ts +2 -0
- package/src/saas/saas-cleanup-service.js +2 -1
- package/src/saas/saas-execution-service.d.ts +1 -1
- package/src/server/actions/action-runner.js +1 -1
- package/src/server/api/auth.js +3 -0
- package/src/server/api/connection-routes.js +1 -1
- package/src/server/api/console-catalog-routes.js +1 -1
- package/src/server/api/console-oauth-routes.d.ts +3 -1
- package/src/server/api/console-oauth-routes.js +22 -9
- package/src/server/api/oauth-completion-page.d.ts +57 -0
- package/src/server/api/oauth-completion-page.js +135 -10
- package/src/server/api/openapi.d.ts +5 -0
- package/src/server/api/openapi.js +62 -2
- package/src/server/api/runtime-api.d.ts +2 -1
- package/src/server/api/runtime-app-routes.js +1 -1
- package/src/server/api/runtime-execution-routes.js +2 -1
- package/src/server/connect-app.d.ts +4 -0
- package/src/server/connect-app.js +14 -1
- package/src/server/connect-server.d.ts +6 -0
- package/src/server/connect-server.js +114 -4
- package/src/server/connector-runtime.d.ts +6 -8
- package/src/server/connector-runtime.js +8 -28
- package/src/server/proxy/proxy-runner.js +1 -1
- package/src/server/slack-event-verification.d.ts +37 -0
- package/src/server/slack-event-verification.js +91 -0
- package/src/server/storage/connection-request-store.d.ts +1 -1
- package/src/server/storage/connection-store.d.ts +1 -1
- package/src/server/storage/postgres/runtime-store.d.ts +1 -1
- package/src/server/storage/runtime-database.d.ts +1 -1
- package/src/server/storage/saas-project-store.d.ts +1 -1
- package/src/triggers/maintenance.d.ts +2 -0
- package/src/triggers/maintenance.js +2 -1
- package/src/triggers/sources/slack-signature.d.ts +10 -0
- package/src/triggers/sources/slack-signature.js +13 -0
- package/src/triggers/sources/slack.js +9 -11
- package/src/triggers/trigger-runner.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalNumber, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, providerUserAgent, ProviderRequestError, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, providerUserAgent, ProviderRequestError, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "autoblogger";
|
|
4
4
|
const autobloggerApiBaseUrl = "https://dash.autoblogging.ai/api/v1";
|
|
5
5
|
const articlesPath = "/articles";
|
|
@@ -219,7 +219,7 @@ async function readAutobloggerPayload(response) {
|
|
|
219
219
|
function createAutobloggerError(status, payload, phase) {
|
|
220
220
|
const message = readErrorMessage(payload) ?? `autoblogger request failed with ${status}`;
|
|
221
221
|
if (status === 400 || status === 404) {
|
|
222
|
-
return
|
|
222
|
+
return providerInputError(message);
|
|
223
223
|
}
|
|
224
224
|
else if (status === 401 || looksLikeAuthError(payload)) {
|
|
225
225
|
return new ProviderRequestError(phase === "validate" ? 401 : 400, message);
|
|
@@ -245,7 +245,7 @@ function readErrorMessage(payload) {
|
|
|
245
245
|
: undefined;
|
|
246
246
|
}
|
|
247
247
|
function readDashboardEmail(value) {
|
|
248
|
-
return requiredString(value, "dashboardEmail",
|
|
248
|
+
return requiredString(value, "dashboardEmail", providerInputError);
|
|
249
249
|
}
|
|
250
250
|
function requiredResponseString(value, fieldName) {
|
|
251
251
|
return requiredString(value, fieldName, () => new ProviderRequestError(502, `autoblogger response missing ${fieldName}`));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
|
|
3
|
-
import { providerUserAgent, ProviderRequestError, readProviderTextBody } from "../provider-runtime.js";
|
|
3
|
+
import { providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
4
4
|
export const baiduMapsApiBaseUrl = "https://api.map.baidu.com";
|
|
5
5
|
export const baiduMapsValidationPath = "/reverse_geocoding/v3/";
|
|
6
6
|
// Errors mapped from Baidu Maps `status` field to ProviderRequestError codes.
|
|
@@ -464,7 +464,7 @@ function normalizeBaiduMapsError(response, payload, phase) {
|
|
|
464
464
|
return new ProviderRequestError(429, message);
|
|
465
465
|
}
|
|
466
466
|
if (baiduMapsInputStatuses.has(status)) {
|
|
467
|
-
return
|
|
467
|
+
return providerInputError(message);
|
|
468
468
|
}
|
|
469
469
|
if (baiduMapsAuthStatuses.has(status)) {
|
|
470
470
|
return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
|
|
@@ -472,7 +472,7 @@ function normalizeBaiduMapsError(response, payload, phase) {
|
|
|
472
472
|
// A non-zero Baidu status we don't specifically classify. Baidu returns
|
|
473
473
|
// HTTP 200 even for errors, so `response.status` is 200 here and would be
|
|
474
474
|
// misclassified as a client error; surface an explicit upstream failure.
|
|
475
|
-
return
|
|
475
|
+
return providerResponseError(message);
|
|
476
476
|
}
|
|
477
477
|
// No numeric Baidu status: fall back to the HTTP status when it is itself an
|
|
478
478
|
// error, otherwise treat the unexpected body as an upstream failure.
|
|
@@ -4,11 +4,10 @@ import { SdkError, SdkErrorCode } from "@modelcontextprotocol/client";
|
|
|
4
4
|
import { posix } from "node:path";
|
|
5
5
|
import { compactObject, optionalInteger, optionalString } from "../../core/cast.js";
|
|
6
6
|
import { withMcpClient } from "../mcp-client.js";
|
|
7
|
-
import { ProviderRequestError } from "../provider-runtime.js";
|
|
7
|
+
import { ProviderRequestError, defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
|
|
8
8
|
import { baiduNetdiskFileCategories, baiduNetdiskListTypes, baiduNetdiskSemanticMatchSources, isBaiduNetdiskAbsolutePath, } from "./actions.js";
|
|
9
9
|
import { normalizeBaiduNetdiskError, parseBaiduNetdiskJson } from "./runtime.js";
|
|
10
10
|
const baiduNetdiskMcpEndpoint = new URL("https://mcp-pan.baidu.com/sse");
|
|
11
|
-
const requestTimeoutMs = 30_000;
|
|
12
11
|
const baiduNetdiskListToolByType = {
|
|
13
12
|
all: "file_list",
|
|
14
13
|
document: "file_doc_list",
|
|
@@ -44,7 +43,7 @@ const semanticSourceByCode = new Map([
|
|
|
44
43
|
]);
|
|
45
44
|
export async function verifyBaiduNetdiskMcpConnection(accessToken, fetcher) {
|
|
46
45
|
await withBaiduNetdiskMcpClient(accessToken, fetcher, async (client) => {
|
|
47
|
-
const result = await client.listTools({}, { timeout:
|
|
46
|
+
const result = await client.listTools({}, { timeout: defaultProviderRequestTimeoutMs });
|
|
48
47
|
const toolsByName = new Map(result.tools.map((tool) => [tool.name, tool]));
|
|
49
48
|
for (const toolName of requiredToolNames) {
|
|
50
49
|
const tool = toolsByName.get(toolName);
|
|
@@ -175,7 +174,7 @@ export async function withBaiduNetdiskMcpClient(accessToken, fetcher, run) {
|
|
|
175
174
|
}
|
|
176
175
|
async function callBaiduNetdiskMcpTool(name, args, phase, context) {
|
|
177
176
|
return withBaiduNetdiskMcpClient(context.accessToken, context.fetcher, async (client) => {
|
|
178
|
-
const result = await client.callTool({ name, arguments: args }, { timeout:
|
|
177
|
+
const result = await client.callTool({ name, arguments: args }, { timeout: defaultProviderRequestTimeoutMs });
|
|
179
178
|
let payload;
|
|
180
179
|
try {
|
|
181
180
|
payload =
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
3
3
|
import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
|
|
4
|
-
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, } from "../provider-runtime.js";
|
|
4
|
+
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, providerInputError, } from "../provider-runtime.js";
|
|
5
5
|
const service = "bark";
|
|
6
6
|
const barkDefaultBaseUrl = "https://api.day.app";
|
|
7
7
|
const barkSuccessCode = 200;
|
|
@@ -203,7 +203,7 @@ function parseBarkPushUrl(value, allowPrivateNetwork) {
|
|
|
203
203
|
url = assertPublicHttpUrl(value, {
|
|
204
204
|
fieldName: "Bark push URL",
|
|
205
205
|
allowPrivateNetwork,
|
|
206
|
-
createError:
|
|
206
|
+
createError: providerInputError,
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
209
|
catch (error) {
|
|
@@ -233,7 +233,7 @@ function normalizeBarkBaseUrl(value, allowPrivateNetwork = isPrivateNetworkAcces
|
|
|
233
233
|
const url = assertPublicHttpUrl(candidate, {
|
|
234
234
|
fieldName: "Bark baseUrl",
|
|
235
235
|
allowPrivateNetwork,
|
|
236
|
-
createError:
|
|
236
|
+
createError: providerInputError,
|
|
237
237
|
});
|
|
238
238
|
if (url.protocol !== "https:" && !allowPrivateNetwork) {
|
|
239
239
|
throw new ProviderRequestError(400, "Bark baseUrl must use https");
|
|
@@ -332,10 +332,10 @@ function readBarkErrorMessage(payload) {
|
|
|
332
332
|
}
|
|
333
333
|
function mapBarkHttpError(status, message, phase) {
|
|
334
334
|
if (status === 401 || status === 403 || (phase === "validate" && status === 404)) {
|
|
335
|
-
return
|
|
335
|
+
return providerInputError(message);
|
|
336
336
|
}
|
|
337
337
|
if (status === 400 || status === 404 || status === 422) {
|
|
338
|
-
return
|
|
338
|
+
return providerInputError(message);
|
|
339
339
|
}
|
|
340
340
|
if (status === 429) {
|
|
341
341
|
return new ProviderRequestError(429, message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const bitriseApiBaseUrl = "https://api.bitrise.io/v0.1";
|
|
4
4
|
export const bitriseActionHandlers = {
|
|
5
5
|
list_apps(input, context) {
|
|
@@ -16,7 +16,7 @@ export const bitriseActionHandlers = {
|
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
18
|
export async function validateBitriseCredential(input, fetcher, signal) {
|
|
19
|
-
const apiKey = requiredString(input.apiKey, "apiKey",
|
|
19
|
+
const apiKey = requiredString(input.apiKey, "apiKey", providerInputError);
|
|
20
20
|
const profilePayload = await requestBitriseJson({
|
|
21
21
|
apiKey,
|
|
22
22
|
path: "/me",
|
|
@@ -190,7 +190,7 @@ function createBitriseError(response, payload, phase) {
|
|
|
190
190
|
return new ProviderRequestError(429, message);
|
|
191
191
|
}
|
|
192
192
|
if (response.status >= 500) {
|
|
193
|
-
return
|
|
193
|
+
return providerResponseError(message);
|
|
194
194
|
}
|
|
195
195
|
if (phase === "validate" && (response.status === 401 || response.status === 403)) {
|
|
196
196
|
return new ProviderRequestError(response.status, message);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString, requiredString, stringArray, } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "bouncer";
|
|
4
4
|
const bouncerApiBaseUrl = "https://api.usebouncer.com";
|
|
5
|
-
const bouncerDefaultRequestTimeoutMs = 30_000;
|
|
6
5
|
export const bouncerActionHandlers = {
|
|
7
6
|
get_credits(_input, context) {
|
|
8
7
|
return requestBouncerCredits({
|
|
@@ -171,7 +170,7 @@ async function requestBouncerVerifyEmail(input) {
|
|
|
171
170
|
phase: input.phase,
|
|
172
171
|
query: {
|
|
173
172
|
email: input.email,
|
|
174
|
-
timeout: String(
|
|
173
|
+
timeout: String(defaultProviderRequestTimeoutMs / 1000),
|
|
175
174
|
},
|
|
176
175
|
});
|
|
177
176
|
return normalizeBouncerVerifyEmail(payload, "/v1.1/email/verify");
|
|
@@ -340,7 +339,7 @@ async function requestBouncerJson(input) {
|
|
|
340
339
|
url.searchParams.set(key, value);
|
|
341
340
|
}
|
|
342
341
|
}
|
|
343
|
-
const timeout = createProviderTimeout(input.signal
|
|
342
|
+
const timeout = createProviderTimeout(input.signal);
|
|
344
343
|
try {
|
|
345
344
|
const headers = {
|
|
346
345
|
accept: "application/json",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
export const browseAiApiBaseUrl = "https://api.browse.ai/v2/";
|
|
4
|
-
const browseAiDefaultRequestTimeoutMs = 30_000;
|
|
5
4
|
export const browseAiActionHandlers = {
|
|
6
5
|
async list_robots(_input, context) {
|
|
7
6
|
const payload = await requestBrowseAiJson({
|
|
@@ -143,7 +142,7 @@ export async function validateBrowseAiCredential(apiKey, fetcher, signal) {
|
|
|
143
142
|
};
|
|
144
143
|
}
|
|
145
144
|
async function requestBrowseAiJson(input) {
|
|
146
|
-
const timeout = createProviderTimeout(input.signal
|
|
145
|
+
const timeout = createProviderTimeout(input.signal);
|
|
147
146
|
const url = new URL(input.path, browseAiApiBaseUrl);
|
|
148
147
|
for (const [key, value] of Object.entries(input.query ?? {})) {
|
|
149
148
|
if (value !== undefined) {
|
|
@@ -171,7 +170,7 @@ async function requestBrowseAiJson(input) {
|
|
|
171
170
|
}
|
|
172
171
|
catch (error) {
|
|
173
172
|
if (timeout.didTimeout() && isAbortLikeError(error)) {
|
|
174
|
-
throw new ProviderRequestError(504, `browse_ai ${url.pathname} request timed out after ${Math.max(1, Math.ceil(
|
|
173
|
+
throw new ProviderRequestError(504, `browse_ai ${url.pathname} request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
|
|
175
174
|
}
|
|
176
175
|
throw new ProviderRequestError(502, error instanceof Error ? `Browse AI request failed: ${error.message}` : "Browse AI request failed");
|
|
177
176
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { compactObject, optionalInteger, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
3
|
-
import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, requireApiKeyCredential, providerInputError, providerResponseError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
4
|
const service = "browserstack";
|
|
5
5
|
const browserstackApiBaseUrl = "https://api.browserstack.com";
|
|
6
|
-
const browserstackDefaultRequestTimeoutMs = 30_000;
|
|
7
6
|
export const browserstackActionHandlers = {
|
|
8
7
|
list_builds(input, context) {
|
|
9
8
|
return listBuilds(input, context);
|
|
@@ -131,7 +130,7 @@ async function requestBrowserstackJson(input) {
|
|
|
131
130
|
url.searchParams.set(key, String(value));
|
|
132
131
|
}
|
|
133
132
|
}
|
|
134
|
-
const timeout = createProviderTimeout(input.context.signal
|
|
133
|
+
const timeout = createProviderTimeout(input.context.signal);
|
|
135
134
|
try {
|
|
136
135
|
const response = await input.context.fetcher(url, {
|
|
137
136
|
method: input.method,
|
|
@@ -154,7 +153,7 @@ async function requestBrowserstackJson(input) {
|
|
|
154
153
|
throw error;
|
|
155
154
|
}
|
|
156
155
|
if (timeout.didTimeout()) {
|
|
157
|
-
throw new ProviderRequestError(504, `BrowserStack request timed out after ${
|
|
156
|
+
throw new ProviderRequestError(504, `BrowserStack request timed out after ${defaultProviderRequestTimeoutMs}ms`);
|
|
158
157
|
}
|
|
159
158
|
throw error;
|
|
160
159
|
}
|
|
@@ -180,9 +179,9 @@ function mapBrowserstackError(status, payload) {
|
|
|
180
179
|
return new ProviderRequestError(401, message);
|
|
181
180
|
}
|
|
182
181
|
if (status >= 400 && status < 500) {
|
|
183
|
-
return
|
|
182
|
+
return providerInputError(message);
|
|
184
183
|
}
|
|
185
|
-
return
|
|
184
|
+
return providerResponseError(message);
|
|
186
185
|
}
|
|
187
186
|
function readErrorMessage(payload) {
|
|
188
187
|
if (typeof payload === "string" && payload.trim()) {
|
|
@@ -198,7 +197,7 @@ function requireUsername(value) {
|
|
|
198
197
|
return requiredString(value, "username", (message) => new ProviderRequestError(400, `browserstack ${message}`));
|
|
199
198
|
}
|
|
200
199
|
function requireInputString(input, fieldName) {
|
|
201
|
-
return requiredString(input[fieldName], fieldName,
|
|
200
|
+
return requiredString(input[fieldName], fieldName, providerInputError);
|
|
202
201
|
}
|
|
203
202
|
function readWrappedObjectArray(payload, key, context) {
|
|
204
203
|
if (!Array.isArray(payload)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
export const buildkiteApiBaseUrl = "https://api.buildkite.com/v2";
|
|
4
4
|
export const buildkiteActionHandlers = {
|
|
5
5
|
get_current_access_token(input, context) {
|
|
@@ -328,10 +328,10 @@ async function toBuildkiteError(response, phase, notFoundAsInvalidInput) {
|
|
|
328
328
|
return new ProviderRequestError(phase === "validate" ? 400 : 403, message);
|
|
329
329
|
}
|
|
330
330
|
if (response.status === 404 && notFoundAsInvalidInput) {
|
|
331
|
-
return
|
|
331
|
+
return providerInputError(message);
|
|
332
332
|
}
|
|
333
333
|
if (response.status === 422) {
|
|
334
|
-
return
|
|
334
|
+
return providerInputError(message);
|
|
335
335
|
}
|
|
336
336
|
if (response.status === 429) {
|
|
337
337
|
return new ProviderRequestError(429, message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { isAbortLikeError, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
|
|
2
|
+
import { isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const bunnyApiBaseUrl = "https://api.bunny.net";
|
|
4
4
|
const validationPath = "/pullzone";
|
|
5
5
|
export const bunnycdnActionHandlers = {
|
|
@@ -170,7 +170,7 @@ function normalizePullZoneListPayload(payload) {
|
|
|
170
170
|
function sanitizePullZone(value, message) {
|
|
171
171
|
const record = optionalRecord(value);
|
|
172
172
|
if (!record) {
|
|
173
|
-
throw
|
|
173
|
+
throw providerResponseError(message);
|
|
174
174
|
}
|
|
175
175
|
return removeBunnyCertificateKeys(record);
|
|
176
176
|
}
|
|
@@ -197,7 +197,7 @@ function createBunnyError(response, payload, phase) {
|
|
|
197
197
|
response.statusText ??
|
|
198
198
|
`bunnycdn request failed with status ${response.status}`;
|
|
199
199
|
if (phase === "validate" && (response.status === 400 || response.status === 401 || response.status === 403)) {
|
|
200
|
-
return
|
|
200
|
+
return providerInputError(message);
|
|
201
201
|
}
|
|
202
202
|
return new ProviderRequestError(response.status, message);
|
|
203
203
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
|
|
3
|
-
const businessmapDefaultRequestTimeoutMs = 30_000;
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
3
|
const businessmapValidationPath = "/workspaces";
|
|
5
4
|
export const businessmapActionHandlers = {
|
|
6
5
|
async list_workspaces(input, context) {
|
|
@@ -186,7 +185,7 @@ export function normalizeBusinessmapAccountUrl(value) {
|
|
|
186
185
|
};
|
|
187
186
|
}
|
|
188
187
|
async function requestBusinessmapJson(input) {
|
|
189
|
-
const timeout = createProviderTimeout(input.signal
|
|
188
|
+
const timeout = createProviderTimeout(input.signal);
|
|
190
189
|
try {
|
|
191
190
|
const response = await input.fetcher(buildBusinessmapUrl(input), {
|
|
192
191
|
method: input.method ?? "GET",
|
|
@@ -210,7 +209,7 @@ async function requestBusinessmapJson(input) {
|
|
|
210
209
|
throw error;
|
|
211
210
|
}
|
|
212
211
|
if (timeout.didTimeout() || isAbortLikeError(error)) {
|
|
213
|
-
throw new ProviderRequestError(504, `Businessmap request timed out after ${Math.max(1, Math.ceil(
|
|
212
|
+
throw new ProviderRequestError(504, `Businessmap request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
|
|
214
213
|
}
|
|
215
214
|
throw new ProviderRequestError(502, error instanceof Error ? `Businessmap request failed: ${error.message}` : "Businessmap request failed");
|
|
216
215
|
}
|
|
@@ -251,10 +250,10 @@ async function readBusinessmapPayload(response) {
|
|
|
251
250
|
function createBusinessmapError(response, payload, mode, notFoundAsInvalidInput) {
|
|
252
251
|
const message = extractBusinessmapErrorMessage(payload) ?? `Businessmap request failed with ${response.status}`;
|
|
253
252
|
if (mode === "validate" && (response.status === 401 || response.status === 403)) {
|
|
254
|
-
return
|
|
253
|
+
return providerInputError(message);
|
|
255
254
|
}
|
|
256
255
|
if (notFoundAsInvalidInput && response.status === 404) {
|
|
257
|
-
return
|
|
256
|
+
return providerInputError(message);
|
|
258
257
|
}
|
|
259
258
|
return new ProviderRequestError(response.status, message);
|
|
260
259
|
}
|
|
@@ -328,7 +327,7 @@ function omitKeys(input, keys) {
|
|
|
328
327
|
}
|
|
329
328
|
function requireNonEmptyObject(input, message) {
|
|
330
329
|
if (Object.keys(input).length === 0) {
|
|
331
|
-
throw
|
|
330
|
+
throw providerInputError(message);
|
|
332
331
|
}
|
|
333
332
|
}
|
|
334
333
|
function requirePositiveInteger(value, fieldName) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalInteger, 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 buttondownApiBaseUrl = "https://api.buttondown.com/v1/";
|
|
4
4
|
export const buttondownActionHandlers = {
|
|
5
5
|
get_account(_input, context) {
|
|
@@ -236,7 +236,7 @@ function createButtondownError(response, payload, phase) {
|
|
|
236
236
|
const status = response.status;
|
|
237
237
|
const message = extractErrorMessage(payload) ?? `Buttondown request failed with status ${status}`;
|
|
238
238
|
if (phase === "validate" && (status === 401 || status === 403)) {
|
|
239
|
-
return
|
|
239
|
+
return providerInputError(message);
|
|
240
240
|
}
|
|
241
241
|
return new ProviderRequestError(status, message);
|
|
242
242
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { optionalInteger, 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 byteformsApiBaseUrl = "https://api.forms.bytesuite.io";
|
|
4
4
|
const validationPath = "/api/form";
|
|
5
5
|
export const byteformsActionHandlers = {
|
|
@@ -124,7 +124,7 @@ function readCursor(cursor) {
|
|
|
124
124
|
async function createByteformsError(response, mode) {
|
|
125
125
|
const message = await readByteformsErrorMessage(response);
|
|
126
126
|
if (mode === "validate" && (response.status === 401 || response.status === 403)) {
|
|
127
|
-
return
|
|
127
|
+
return providerInputError(message);
|
|
128
128
|
}
|
|
129
129
|
return new ProviderRequestError(response.status, message);
|
|
130
130
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { booleanString, compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
|
|
2
|
-
import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
|
|
2
|
+
import { providerUserAgent, ProviderRequestError, providerResponseError } from "../provider-runtime.js";
|
|
3
3
|
export const calendlyApiOrigin = "https://api.calendly.com";
|
|
4
4
|
const calendlyValidationPath = "/users/me";
|
|
5
5
|
export const calendlyActionHandlers = {
|
|
@@ -854,7 +854,7 @@ function createCalendlyTransportError(error, phase) {
|
|
|
854
854
|
if (isAbortError(error)) {
|
|
855
855
|
return new ProviderRequestError(504, message);
|
|
856
856
|
}
|
|
857
|
-
return
|
|
857
|
+
return providerResponseError(message);
|
|
858
858
|
}
|
|
859
859
|
function isAbortError(error) {
|
|
860
860
|
return error instanceof DOMException && error.name === "AbortError";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalInteger as asOptionalInteger, optionalRecord as asOptionalObject, optionalString as asOptionalString, } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, providerUserAgent as connectorUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, providerUserAgent as connectorUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const captainBiApiBaseUrl = "https://openapi.captainbi.com";
|
|
4
4
|
export const captainBiTokenUrl = `${captainBiApiBaseUrl}/oauth2/token`;
|
|
5
5
|
const defaultPage = 1;
|
|
@@ -285,7 +285,7 @@ function mapCaptainBiHttpError(status, payload, phase, operation) {
|
|
|
285
285
|
return new ProviderRequestError(429, message);
|
|
286
286
|
}
|
|
287
287
|
if (phase === "validate" && [400, 401, 403].includes(status)) {
|
|
288
|
-
return
|
|
288
|
+
return providerInputError(message);
|
|
289
289
|
}
|
|
290
290
|
if (status === 401 || (operation === "access token exchange" && [400, 403].includes(status))) {
|
|
291
291
|
return new ProviderRequestError(401, message);
|
|
@@ -296,21 +296,21 @@ function mapCaptainBiHttpError(status, payload, phase, operation) {
|
|
|
296
296
|
if ([400, 404, 409, 422].includes(status)) {
|
|
297
297
|
return new ProviderRequestError(status === 404 ? 404 : 400, message);
|
|
298
298
|
}
|
|
299
|
-
return
|
|
299
|
+
return providerResponseError(message);
|
|
300
300
|
}
|
|
301
301
|
function mapCaptainBiBusinessError(code, payload, phase, operation) {
|
|
302
302
|
const message = readString(payload, "msg", "message", "error") ??
|
|
303
303
|
`CaptainBI ${operation} failed${code == null ? "" : ` with code ${code}`}`;
|
|
304
304
|
switch (code) {
|
|
305
305
|
case 100903:
|
|
306
|
-
return
|
|
306
|
+
return providerInputError(message);
|
|
307
307
|
case 100904:
|
|
308
308
|
case 100910:
|
|
309
309
|
return new ProviderRequestError(429, message);
|
|
310
310
|
case 100902:
|
|
311
311
|
case 100906:
|
|
312
312
|
case 100907:
|
|
313
|
-
return phase === "validate" ?
|
|
313
|
+
return phase === "validate" ? providerInputError(message) : new ProviderRequestError(401, message);
|
|
314
314
|
case 100901:
|
|
315
315
|
case 100905:
|
|
316
316
|
case 100908:
|
|
@@ -321,7 +321,7 @@ function mapCaptainBiBusinessError(code, payload, phase, operation) {
|
|
|
321
321
|
case 100914:
|
|
322
322
|
return new ProviderRequestError(403, message);
|
|
323
323
|
default:
|
|
324
|
-
return
|
|
324
|
+
return providerResponseError(message);
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
function readCaptainBiErrorMessage(payload) {
|
|
@@ -180,7 +180,7 @@ function createCastingwordsError(status, payload, phase) {
|
|
|
180
180
|
return new ProviderRequestError(429, message);
|
|
181
181
|
}
|
|
182
182
|
if (status === 400) {
|
|
183
|
-
return
|
|
183
|
+
return providerInputError(message);
|
|
184
184
|
}
|
|
185
185
|
if (status === 401 || status === 403) {
|
|
186
186
|
return new ProviderRequestError(phase === "validate" ? 401 : status, message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
|
|
2
|
+
import { providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const chatpdfApiBaseUrl = "https://api.chatpdf.com/v1";
|
|
4
4
|
export const chatpdfActionHandlers = {
|
|
5
5
|
async add_source_url(input, context) {
|
|
@@ -98,7 +98,7 @@ function createChatpdfError(response, payload) {
|
|
|
98
98
|
return new ProviderRequestError(429, message);
|
|
99
99
|
}
|
|
100
100
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
101
|
-
return
|
|
101
|
+
return providerInputError(message);
|
|
102
102
|
}
|
|
103
103
|
return new ProviderRequestError(response.status >= 500 ? 502 : response.status, message);
|
|
104
104
|
}
|
|
@@ -115,13 +115,13 @@ function extractErrorMessage(payload) {
|
|
|
115
115
|
function requireObject(value, message) {
|
|
116
116
|
const record = optionalRecord(value);
|
|
117
117
|
if (!record) {
|
|
118
|
-
throw
|
|
118
|
+
throw providerResponseError(message);
|
|
119
119
|
}
|
|
120
120
|
return record;
|
|
121
121
|
}
|
|
122
122
|
function requireString(value, message) {
|
|
123
123
|
if (typeof value !== "string" || value.length === 0) {
|
|
124
|
-
throw
|
|
124
|
+
throw providerResponseError(message);
|
|
125
125
|
}
|
|
126
126
|
return value;
|
|
127
127
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString, } from "../../core/cast.js";
|
|
2
|
-
import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
2
|
+
import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "check";
|
|
4
4
|
const sandboxApiBaseUrl = "https://sandbox.checkhq.com";
|
|
5
5
|
const productionApiBaseUrl = "https://api.checkhq.com";
|
|
6
|
-
const requestTimeoutMs = 30_000;
|
|
7
6
|
export const checkActionHandlers = {
|
|
8
7
|
async validate_address(input, context) {
|
|
9
8
|
const payload = await requestCheckJson({
|
|
@@ -110,8 +109,8 @@ export const credentialValidators = {
|
|
|
110
109
|
};
|
|
111
110
|
async function requestCheckJson(input) {
|
|
112
111
|
const signal = input.context.signal
|
|
113
|
-
? AbortSignal.any([input.context.signal, AbortSignal.timeout(
|
|
114
|
-
: AbortSignal.timeout(
|
|
112
|
+
? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
|
|
113
|
+
: AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
115
114
|
let response;
|
|
116
115
|
let payload;
|
|
117
116
|
try {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { optionalBoolean, optionalRecord, optionalString, requiredRecord, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
2
|
+
import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "checkly";
|
|
4
4
|
const apiBaseUrl = "https://api.checklyhq.com";
|
|
5
|
-
const requestTimeoutMs = 30_000;
|
|
6
5
|
export const checklyActionHandlers = {
|
|
7
6
|
async get_current_account(_input, context) {
|
|
8
7
|
return { account: await requestChecklyJson({ context, path: "/v1/accounts/me", phase: "execute" }) };
|
|
@@ -134,8 +133,8 @@ export const proxy = defineProviderProxy({
|
|
|
134
133
|
});
|
|
135
134
|
async function requestChecklyJson(input) {
|
|
136
135
|
const signal = input.context.signal
|
|
137
|
-
? AbortSignal.any([input.context.signal, AbortSignal.timeout(
|
|
138
|
-
: AbortSignal.timeout(
|
|
136
|
+
? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
|
|
137
|
+
: AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
139
138
|
let response;
|
|
140
139
|
let payload;
|
|
141
140
|
try {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, looseArray, optionalRecord as asOptionalObject, optionalString as asOptionalString, } from "../../core/cast.js";
|
|
2
|
-
import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
|
|
2
|
+
import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
|
|
3
3
|
function requiredApiKey(input) {
|
|
4
4
|
if (input.apiKey?.trim())
|
|
5
5
|
return input.apiKey.trim();
|
|
@@ -238,10 +238,10 @@ function createChengxinError(input) {
|
|
|
238
238
|
input.code === "3" ||
|
|
239
239
|
input.code === "401" ||
|
|
240
240
|
input.code === "403") {
|
|
241
|
-
return input.phase === "validate" ?
|
|
241
|
+
return input.phase === "validate" ? providerInputError(message) : new ProviderRequestError(401, message);
|
|
242
242
|
}
|
|
243
243
|
if (input.status >= 400 && input.status < 500) {
|
|
244
|
-
return
|
|
244
|
+
return providerInputError(message);
|
|
245
245
|
}
|
|
246
246
|
return new ProviderRequestError(input.status || 502, message);
|
|
247
247
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "cincopa";
|
|
4
4
|
const apiBaseUrl = "https://api.cincopa.com/v2";
|
|
5
5
|
const validationPath = "/ping.json";
|
|
6
|
-
const requestTimeoutMs = 30_000;
|
|
7
6
|
export const cincopaActionHandlers = {
|
|
8
7
|
async list_galleries(input, context) {
|
|
9
8
|
const body = await requestBody({
|
|
@@ -110,8 +109,8 @@ async function requestBody(input, label) {
|
|
|
110
109
|
}
|
|
111
110
|
async function requestJson(input) {
|
|
112
111
|
const signal = input.context.signal
|
|
113
|
-
? AbortSignal.any([input.context.signal, AbortSignal.timeout(
|
|
114
|
-
: AbortSignal.timeout(
|
|
112
|
+
? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
|
|
113
|
+
: AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
115
114
|
let response;
|
|
116
115
|
let payload;
|
|
117
116
|
try {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "circle";
|
|
4
4
|
const apiBaseUrl = "https://app.circle.so/api/admin/v2";
|
|
5
|
-
const requestTimeoutMs = 30_000;
|
|
6
5
|
export const circleActionHandlers = {
|
|
7
6
|
async get_community(_input, context) {
|
|
8
7
|
return {
|
|
@@ -122,8 +121,8 @@ export const credentialValidators = {
|
|
|
122
121
|
};
|
|
123
122
|
async function requestCircleJson(input) {
|
|
124
123
|
const signal = input.context.signal
|
|
125
|
-
? AbortSignal.any([input.context.signal, AbortSignal.timeout(
|
|
126
|
-
: AbortSignal.timeout(
|
|
124
|
+
? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
|
|
125
|
+
: AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
127
126
|
let response;
|
|
128
127
|
let payload;
|
|
129
128
|
try {
|
|
@@ -2,7 +2,6 @@ import { compactObject, optionalNumber, optionalRecord, optionalString } from ".
|
|
|
2
2
|
import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, isAbortLikeError, ProviderRequestError, providerUserAgent, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
3
3
|
const service = "clearout";
|
|
4
4
|
const clearoutDefaultBaseUrl = "https://api.clearout.io/v2";
|
|
5
|
-
const clearoutDefaultRequestTimeoutMs = 30_000;
|
|
6
5
|
export const clearoutActionHandlers = {
|
|
7
6
|
get_available_credits(_input, context) {
|
|
8
7
|
return requestClearoutJson({
|
|
@@ -105,7 +104,7 @@ function executeEmailAttributeCheck(input, context, path) {
|
|
|
105
104
|
});
|
|
106
105
|
}
|
|
107
106
|
async function requestClearoutJson(input) {
|
|
108
|
-
const timeout = createProviderTimeout(input.context.signal, input.timeoutMs
|
|
107
|
+
const timeout = createProviderTimeout(input.context.signal, input.timeoutMs);
|
|
109
108
|
try {
|
|
110
109
|
const response = await input.context.fetcher(buildUrl(input.context.baseUrl, input.path), {
|
|
111
110
|
method: input.method,
|