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