@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, nullableString, optionalBoolean, optionalNumber, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "dub";
|
|
4
4
|
export const dubApiBaseUrl = "https://api.dub.co";
|
|
5
5
|
const dubLinksPath = "/links";
|
|
@@ -227,13 +227,13 @@ function createDubError(response, payload, phase) {
|
|
|
227
227
|
return new ProviderRequestError(429, message);
|
|
228
228
|
}
|
|
229
229
|
if (phase === "validate" && (response.status === 401 || response.status === 403)) {
|
|
230
|
-
return
|
|
230
|
+
return providerInputError(message);
|
|
231
231
|
}
|
|
232
232
|
if (phase === "execute" && (response.status === 401 || response.status === 403)) {
|
|
233
233
|
return new ProviderRequestError(401, message);
|
|
234
234
|
}
|
|
235
235
|
if (phase === "execute" && [400, 404, 409, 410, 422].includes(response.status)) {
|
|
236
|
-
return
|
|
236
|
+
return providerInputError(message);
|
|
237
237
|
}
|
|
238
238
|
return new ProviderRequestError(response.status || 500, message);
|
|
239
239
|
}
|
|
@@ -249,7 +249,7 @@ function extractDubErrorMessage(payload) {
|
|
|
249
249
|
return optionalString(nestedError?.message) ?? optionalString(object.message) ?? optionalString(object.error);
|
|
250
250
|
}
|
|
251
251
|
function normalizeLink(payload) {
|
|
252
|
-
const object = requiredRecord(payload, "link",
|
|
252
|
+
const object = requiredRecord(payload, "link", providerResponseError);
|
|
253
253
|
return {
|
|
254
254
|
id: readRequiredString(object.id, "link.id"),
|
|
255
255
|
domain: readRequiredString(object.domain, "link.domain"),
|
|
@@ -269,7 +269,7 @@ function normalizeLink(payload) {
|
|
|
269
269
|
};
|
|
270
270
|
}
|
|
271
271
|
function normalizeTag(payload) {
|
|
272
|
-
const object = requiredRecord(payload, "tag",
|
|
272
|
+
const object = requiredRecord(payload, "tag", providerResponseError);
|
|
273
273
|
return {
|
|
274
274
|
id: readRequiredString(object.id, "tag.id"),
|
|
275
275
|
name: readRequiredString(object.name, "tag.name"),
|
|
@@ -278,7 +278,7 @@ function normalizeTag(payload) {
|
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
280
|
function normalizeFolder(payload) {
|
|
281
|
-
const object = requiredRecord(payload, "folder",
|
|
281
|
+
const object = requiredRecord(payload, "folder", providerResponseError);
|
|
282
282
|
return {
|
|
283
283
|
id: readRequiredString(object.id, "folder.id"),
|
|
284
284
|
name: readRequiredString(object.name, "folder.name"),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { 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 dumplingaiApiBaseUrl = "https://app.dumplingai.com";
|
|
4
4
|
const balancePath = "/api/v2/balance";
|
|
5
5
|
const requests = {
|
|
@@ -70,6 +70,6 @@ function mapError(status, payload, phase) {
|
|
|
70
70
|
if (status === 429)
|
|
71
71
|
return new ProviderRequestError(429, message);
|
|
72
72
|
if (status === 400 || status === 404 || status === 422)
|
|
73
|
-
return
|
|
73
|
+
return providerInputError(message);
|
|
74
74
|
return new ProviderRequestError(status || 502, message);
|
|
75
75
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { booleanString, compactObject, optionalBoolean, optionalInteger, optionalNumber, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
3
3
|
import { readBoundedResponseBytes, storeResponseInTransit } from "../../core/request.js";
|
|
4
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
|
|
4
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
5
5
|
const elevenlabsApiOrigin = "https://api.elevenlabs.io";
|
|
6
6
|
const elevenlabsApiBaseUrl = `${elevenlabsApiOrigin}/v1`;
|
|
7
7
|
const elevenlabsApiV2BaseUrl = `${elevenlabsApiOrigin}/v2`;
|
|
@@ -458,13 +458,13 @@ async function createElevenlabsError(response, mode) {
|
|
|
458
458
|
return new ProviderRequestError(429, message);
|
|
459
459
|
}
|
|
460
460
|
if (mode === "validate" && (response.status === 401 || response.status === 403)) {
|
|
461
|
-
return
|
|
461
|
+
return providerInputError(message);
|
|
462
462
|
}
|
|
463
463
|
if (mode === "execute" && (response.status === 401 || response.status === 403)) {
|
|
464
464
|
return new ProviderRequestError(401, message);
|
|
465
465
|
}
|
|
466
466
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
467
|
-
return
|
|
467
|
+
return providerInputError(message);
|
|
468
468
|
}
|
|
469
469
|
return new ProviderRequestError(response.status >= 500 ? 502 : response.status, message);
|
|
470
470
|
}
|
|
@@ -829,7 +829,7 @@ async function storeElevenlabsFile(context, name, mimeType, bytes, actionName) {
|
|
|
829
829
|
};
|
|
830
830
|
}
|
|
831
831
|
function asObject(value) {
|
|
832
|
-
return requiredRecord(value, "elevenlabs object",
|
|
832
|
+
return requiredRecord(value, "elevenlabs object", providerResponseError);
|
|
833
833
|
}
|
|
834
834
|
function pickFirstString(input, ...keys) {
|
|
835
835
|
for (const key of keys) {
|
|
@@ -228,7 +228,7 @@ async function createElevenreaderError(response, phase) {
|
|
|
228
228
|
return new ProviderRequestError(429, message);
|
|
229
229
|
}
|
|
230
230
|
if (response.status >= 400 && response.status < 500) {
|
|
231
|
-
return
|
|
231
|
+
return providerInputError(message);
|
|
232
232
|
}
|
|
233
233
|
return new ProviderRequestError(response.status >= 400 && response.status < 600 ? response.status : 502, message);
|
|
234
234
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, objectArray, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
2
|
import { encodePathSegment } from "../../core/request.js";
|
|
3
|
-
import { ProviderRequestError, providerUserAgent, requiredInputString } from "../provider-runtime.js";
|
|
3
|
+
import { ProviderRequestError, providerUserAgent, requiredInputString, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
4
4
|
export const emailoctopusApiBaseUrl = "https://emailoctopus.com/api/1.6";
|
|
5
5
|
const emailoctopusValidationPath = "/lists";
|
|
6
6
|
export const emailoctopusActionHandlers = {
|
|
@@ -274,10 +274,10 @@ function createEmailoctopusHttpError(status, message, mode) {
|
|
|
274
274
|
return new ProviderRequestError(429, message);
|
|
275
275
|
}
|
|
276
276
|
if (mode === "validate" && status === 401) {
|
|
277
|
-
return
|
|
277
|
+
return providerInputError(message);
|
|
278
278
|
}
|
|
279
279
|
if (status === 400 || status === 404 || status === 422) {
|
|
280
|
-
return
|
|
280
|
+
return providerInputError(message);
|
|
281
281
|
}
|
|
282
282
|
return new ProviderRequestError(status || 500, message);
|
|
283
283
|
}
|
|
@@ -295,7 +295,7 @@ function contactPath(input) {
|
|
|
295
295
|
return `/lists/${encodePathSegment(requiredInputString(input.list_id, "list_id"))}/contacts/${encodePathSegment(requiredInputString(input.contact_id, "contact_id"))}`;
|
|
296
296
|
}
|
|
297
297
|
function readObjectArray(value, fieldName) {
|
|
298
|
-
return Array.isArray(value) ? objectArray(value, fieldName,
|
|
298
|
+
return Array.isArray(value) ? objectArray(value, fieldName, providerResponseError) : [];
|
|
299
299
|
}
|
|
300
300
|
function optionalStringArray(value) {
|
|
301
301
|
if (!Array.isArray(value)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, } from "../provider-runtime.js";
|
|
2
|
+
import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const embaseApiBaseUrl = "https://api.elsevier.com/content/embase";
|
|
4
4
|
export const embaseActionHandlers = {
|
|
5
5
|
async search_articles(input, context) {
|
|
@@ -124,7 +124,7 @@ function createEmbaseError(status, payload, phase) {
|
|
|
124
124
|
return new ProviderRequestError(429, message);
|
|
125
125
|
}
|
|
126
126
|
if (phase === "validate" && 400 <= status && status < 500) {
|
|
127
|
-
return
|
|
127
|
+
return providerInputError(message);
|
|
128
128
|
}
|
|
129
129
|
if (status === 401) {
|
|
130
130
|
return new ProviderRequestError(401, message);
|
|
@@ -135,7 +135,7 @@ function createEmbaseError(status, payload, phase) {
|
|
|
135
135
|
if (400 <= status && status < 500) {
|
|
136
136
|
return new ProviderRequestError(502, message, status);
|
|
137
137
|
}
|
|
138
|
-
return
|
|
138
|
+
return providerResponseError(message);
|
|
139
139
|
}
|
|
140
140
|
function extractEmbaseErrorMessage(payload) {
|
|
141
141
|
if (typeof payload === "string") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "emelia";
|
|
4
4
|
const emeliaApiBaseUrl = "https://api.emelia.io";
|
|
5
5
|
export const emeliaActionHandlers = {
|
|
@@ -120,7 +120,7 @@ function createEmeliaError(response, payload, phase) {
|
|
|
120
120
|
return new ProviderRequestError(401, message);
|
|
121
121
|
}
|
|
122
122
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
123
|
-
return
|
|
123
|
+
return providerInputError(message);
|
|
124
124
|
}
|
|
125
125
|
return new ProviderRequestError(response.status || 502, message);
|
|
126
126
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, looseArray, optionalBoolean, optionalBooleanOrNull, optionalInteger, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "enigma";
|
|
4
4
|
const enigmaGraphqlApiUrl = "https://api.enigma.com/graphql";
|
|
5
5
|
const enigmaKybApiUrl = "https://api.enigma.com/v2/kyb/";
|
|
@@ -502,7 +502,7 @@ function createEnigmaError(response, payload, phase) {
|
|
|
502
502
|
return new ProviderRequestError(429, message);
|
|
503
503
|
}
|
|
504
504
|
if (phase === "validate" && (status === 401 || status === 403)) {
|
|
505
|
-
return
|
|
505
|
+
return providerInputError(message);
|
|
506
506
|
}
|
|
507
507
|
if (phase === "execute" && status === 401) {
|
|
508
508
|
return new ProviderRequestError(401, message);
|
|
@@ -511,7 +511,7 @@ function createEnigmaError(response, payload, phase) {
|
|
|
511
511
|
return new ProviderRequestError(403, message);
|
|
512
512
|
}
|
|
513
513
|
if (status === 400 || status === 404 || status === 422) {
|
|
514
|
-
return
|
|
514
|
+
return providerInputError(message);
|
|
515
515
|
}
|
|
516
516
|
return new ProviderRequestError(status >= 500 ? 502 : status, message);
|
|
517
517
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, nullableInteger, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "eodhd_apis";
|
|
4
4
|
const eodhdApisApiBaseUrl = "https://eodhd.com/api";
|
|
5
5
|
const eodhdApisActionHandlers = {
|
|
@@ -222,7 +222,7 @@ async function readEodhdApisPayload(response) {
|
|
|
222
222
|
function createEodhdApisError(status, payload) {
|
|
223
223
|
const message = extractEodhdApisErrorMessage(payload) ?? `EODHD APIs request failed with status ${status}`;
|
|
224
224
|
if (status === 400 || status === 401 || status === 403 || status === 404 || status === 422) {
|
|
225
|
-
return
|
|
225
|
+
return providerInputError(message);
|
|
226
226
|
}
|
|
227
227
|
if (status === 429) {
|
|
228
228
|
return new ProviderRequestError(429, message);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalNumber, 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 eventzillaApiBaseUrl = "https://www.eventzillaapi.net/api/v2";
|
|
4
4
|
const eventzillaValidationPath = "/users";
|
|
5
|
-
const eventzillaDefaultTimeoutMs = 30_000;
|
|
6
5
|
export const eventzillaActionHandlers = {
|
|
7
6
|
async list_events(input, context) {
|
|
8
7
|
const payload = await requestEventzillaJson({
|
|
@@ -140,7 +139,7 @@ export async function validateEventzillaCredential(apiKey, fetcher, signal) {
|
|
|
140
139
|
};
|
|
141
140
|
}
|
|
142
141
|
async function requestEventzillaJson(input, context) {
|
|
143
|
-
const timeout = createProviderTimeout(context.signal
|
|
142
|
+
const timeout = createProviderTimeout(context.signal);
|
|
144
143
|
try {
|
|
145
144
|
const response = await context.fetcher(buildEventzillaUrl(input.path, input.query), {
|
|
146
145
|
method: "GET",
|
|
@@ -166,7 +165,7 @@ async function requestEventzillaJson(input, context) {
|
|
|
166
165
|
throw error;
|
|
167
166
|
}
|
|
168
167
|
if (timeout.didTimeout() || isAbortLikeError(error)) {
|
|
169
|
-
throw new ProviderRequestError(504, `Eventzilla request timed out after ${Math.ceil(
|
|
168
|
+
throw new ProviderRequestError(504, `Eventzilla request timed out after ${Math.ceil(defaultProviderRequestTimeoutMs / 1000)} seconds`, error);
|
|
170
169
|
}
|
|
171
170
|
throw new ProviderRequestError(502, error instanceof Error ? `Eventzilla request failed: ${error.message}` : "Eventzilla request failed", error);
|
|
172
171
|
}
|
|
@@ -85,7 +85,7 @@ function mapError(response, payload, phase) {
|
|
|
85
85
|
if (response.status === 429)
|
|
86
86
|
return new ProviderRequestError(429, message);
|
|
87
87
|
if (phase === "validate" && response.status < 500)
|
|
88
|
-
return
|
|
88
|
+
return providerInputError(message);
|
|
89
89
|
if (response.status === 401)
|
|
90
90
|
return new ProviderRequestError(401, message);
|
|
91
91
|
if (response.status === 403)
|
|
@@ -5,9 +5,8 @@ import { createHash } from "node:crypto";
|
|
|
5
5
|
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
6
6
|
import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
|
|
7
7
|
import { withMcpClient } from "../mcp-client.js";
|
|
8
|
-
import { ProviderRequestError, providerUserAgent, requiredInputString } from "../provider-runtime.js";
|
|
8
|
+
import { ProviderRequestError, providerUserAgent, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
9
9
|
const defaultEndpoint = "https://mcp.excalidraw.com";
|
|
10
|
-
const requestTimeoutMs = 30_000;
|
|
11
10
|
export const excalidrawMcpActionHandlers = {
|
|
12
11
|
read_me(_input, context) {
|
|
13
12
|
return callExcalidrawMcpTool(context, "read_me", {});
|
|
@@ -70,14 +69,14 @@ export async function callExcalidrawMcpTool(context, toolName, args) {
|
|
|
70
69
|
name: toolName,
|
|
71
70
|
arguments: args,
|
|
72
71
|
}, {
|
|
73
|
-
timeout:
|
|
72
|
+
timeout: defaultProviderRequestTimeoutMs,
|
|
74
73
|
signal: context.signal,
|
|
75
74
|
}));
|
|
76
75
|
return toolName === "create_view" ? normalizeCreateViewResult(result) : normalizeReadMeResult(result);
|
|
77
76
|
}
|
|
78
77
|
async function listExcalidrawMcpTools(context) {
|
|
79
78
|
const result = await withExcalidrawMcpClient(context, async (client) => client.listTools({}, {
|
|
80
|
-
timeout:
|
|
79
|
+
timeout: defaultProviderRequestTimeoutMs,
|
|
81
80
|
signal: context.signal,
|
|
82
81
|
}));
|
|
83
82
|
return result.tools.map((tool) => tool.name);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalNumber } from "../../core/cast.js";
|
|
2
|
-
import { getProviderActionHandler, ProviderRequestError } from "../provider-runtime.js";
|
|
2
|
+
import { getProviderActionHandler, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
import { emptyWorkbookBytes, excelWorkbookMimeType } from "./workbook-template.js";
|
|
4
4
|
export const graphBaseUrl = "https://graph.microsoft.com/v1.0";
|
|
5
5
|
const graphHost = "graph.microsoft.com";
|
|
@@ -186,7 +186,7 @@ export async function assertExcelResponse(response) {
|
|
|
186
186
|
}
|
|
187
187
|
const { code, message } = await extractExcelError(response);
|
|
188
188
|
if (response.status === 400) {
|
|
189
|
-
throw
|
|
189
|
+
throw providerInputError(message);
|
|
190
190
|
}
|
|
191
191
|
if (response.status === 401) {
|
|
192
192
|
throw new ProviderRequestError(401, message);
|
|
@@ -198,7 +198,7 @@ export async function assertExcelResponse(response) {
|
|
|
198
198
|
throw new ProviderRequestError(403, message);
|
|
199
199
|
}
|
|
200
200
|
if (response.status === 404) {
|
|
201
|
-
throw
|
|
201
|
+
throw providerInputError(message);
|
|
202
202
|
}
|
|
203
203
|
if (response.status === 429) {
|
|
204
204
|
throw new ProviderRequestError(429, message);
|
|
@@ -527,7 +527,7 @@ function asUploadSession(value) {
|
|
|
527
527
|
async function buildUploadSessionError(response) {
|
|
528
528
|
const { message } = await extractExcelError(response);
|
|
529
529
|
if (response.status === 400 || response.status === 409 || response.status === 412) {
|
|
530
|
-
return
|
|
530
|
+
return providerInputError(message);
|
|
531
531
|
}
|
|
532
532
|
if (response.status === 404) {
|
|
533
533
|
return new ProviderRequestError(404, "excel upload session expired");
|
|
@@ -1087,7 +1087,7 @@ async function readJsonResponse(response, label) {
|
|
|
1087
1087
|
function buildExcelOperationError(payload, fallbackMessage) {
|
|
1088
1088
|
const errorPayload = asObjectSafe(payload.error);
|
|
1089
1089
|
const message = readOptionalString(errorPayload?.message) ?? readOptionalString(payload.message) ?? fallbackMessage;
|
|
1090
|
-
return
|
|
1090
|
+
return providerResponseError(message);
|
|
1091
1091
|
}
|
|
1092
1092
|
function normalizeExtensions(value) {
|
|
1093
1093
|
if (!Array.isArray(value) || value.length === 0) {
|
|
@@ -1363,7 +1363,7 @@ function readAliasedStringArray(input, keys) {
|
|
|
1363
1363
|
function requireNonEmptyMutationBody(input, message) {
|
|
1364
1364
|
const body = compactObject(input);
|
|
1365
1365
|
if (Object.keys(body).length === 0) {
|
|
1366
|
-
throw
|
|
1366
|
+
throw providerInputError(message);
|
|
1367
1367
|
}
|
|
1368
1368
|
return body;
|
|
1369
1369
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { ProviderRequestError, providerUserAgent, runProviderRequest } from "../provider-runtime.js";
|
|
2
|
+
import { ProviderRequestError, providerUserAgent, runProviderRequest, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
export const expofpApiBaseUrl = "https://app.expofp.com/api/v1";
|
|
4
4
|
export const expofpActionHandlers = {
|
|
5
5
|
async list_expos(_input, context) {
|
|
@@ -109,7 +109,7 @@ function createExpofpError(status, payload, phase) {
|
|
|
109
109
|
return new ProviderRequestError(429, message);
|
|
110
110
|
}
|
|
111
111
|
if (phase === "validate" && status >= 400 && status < 500) {
|
|
112
|
-
return
|
|
112
|
+
return providerInputError(message);
|
|
113
113
|
}
|
|
114
114
|
if (phase === "execute" && status === 401) {
|
|
115
115
|
return new ProviderRequestError(401, message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { 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 faktooraApiBaseUrl = "https://api.faktoora.com/api/v1";
|
|
4
4
|
const faktooraValidationPath = "/projects";
|
|
5
5
|
export const faktooraActionHandlers = {
|
|
@@ -72,7 +72,7 @@ export const faktooraActionHandlers = {
|
|
|
72
72
|
},
|
|
73
73
|
};
|
|
74
74
|
export async function validateFaktooraCredential(input, fetcher) {
|
|
75
|
-
const apiKey = requiredString(input.apiKey, "apiKey",
|
|
75
|
+
const apiKey = requiredString(input.apiKey, "apiKey", providerInputError);
|
|
76
76
|
await requestFaktooraJson({
|
|
77
77
|
apiKey,
|
|
78
78
|
fetcher,
|
|
@@ -146,15 +146,15 @@ function createFaktooraError(status, payload, phase) {
|
|
|
146
146
|
if (status === 429)
|
|
147
147
|
return new ProviderRequestError(429, message);
|
|
148
148
|
if ((status === 401 || status === 403) && phase === "validate") {
|
|
149
|
-
return
|
|
149
|
+
return providerInputError(message);
|
|
150
150
|
}
|
|
151
151
|
if (status === 401 || status === 403) {
|
|
152
152
|
return new ProviderRequestError(401, message);
|
|
153
153
|
}
|
|
154
154
|
if (status === 400 || status === 404 || status === 409 || status === 422) {
|
|
155
|
-
return
|
|
155
|
+
return providerInputError(message);
|
|
156
156
|
}
|
|
157
|
-
return
|
|
157
|
+
return providerResponseError(message);
|
|
158
158
|
}
|
|
159
159
|
function extractMessage(payload) {
|
|
160
160
|
if (typeof payload === "string" && payload.trim())
|
|
@@ -2,7 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { posix as path } from "node:path";
|
|
3
3
|
import { compactObject, optionalInteger, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
4
4
|
import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed, readBoundedResponseBytes } from "../../core/request.js";
|
|
5
|
-
import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, } from "../provider-runtime.js";
|
|
5
|
+
import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, providerResponseError, } from "../provider-runtime.js";
|
|
6
6
|
const requestTimeoutMs = 60_000;
|
|
7
7
|
const attachmentMaxBytes = 20 * 1024 * 1024;
|
|
8
8
|
export const fastNoteSyncActionHandlers = {
|
|
@@ -345,7 +345,7 @@ function mapFastNoteSyncBusinessError(code, message, phase) {
|
|
|
345
345
|
return new ProviderRequestError(429, message);
|
|
346
346
|
if (code === 305 || (code != null && code >= 400 && code < 500))
|
|
347
347
|
return providerInputError(message);
|
|
348
|
-
return
|
|
348
|
+
return providerResponseError(message);
|
|
349
349
|
}
|
|
350
350
|
function isFastNoteSyncCredentialErrorCode(code) {
|
|
351
351
|
return code != null && ((code >= 306 && code <= 315) || code === 507 || code === 508);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, recordOrEmpty, stringArray } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "feathery";
|
|
4
4
|
const featheryApiBaseUrl = "https://api.feathery.io";
|
|
5
5
|
const featheryValidationPath = "/api/account/";
|
|
6
|
-
const featheryRequestTimeoutMs = 30_000;
|
|
7
6
|
export const featheryActionHandlers = {
|
|
8
7
|
async get_account_info(_input, context) {
|
|
9
8
|
return {
|
|
@@ -228,7 +227,7 @@ async function requestFeatheryJson(input, fetcher) {
|
|
|
228
227
|
url.searchParams.set(key, String(value));
|
|
229
228
|
}
|
|
230
229
|
}
|
|
231
|
-
const timeoutSignal = AbortSignal.timeout(
|
|
230
|
+
const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
232
231
|
const signal = input.signal ? AbortSignal.any([input.signal, timeoutSignal]) : timeoutSignal;
|
|
233
232
|
try {
|
|
234
233
|
const response = await fetcher(url.toString(), {
|
|
@@ -25,12 +25,11 @@ import { createFeishuTaskActionHandlers } from "../feishu/shared/task-runtime.js
|
|
|
25
25
|
import { createFeishuVcActionHandlers } from "../feishu/shared/vc-runtime.js";
|
|
26
26
|
import { createFeishuWhiteboardActionHandlers } from "../feishu/shared/whiteboard-runtime.js";
|
|
27
27
|
import { createFeishuWikiActionHandlers } from "../feishu/shared/wiki-runtime.js";
|
|
28
|
-
import { createProviderProxyUrl, defineProviderExecutors, getProviderActionHandler, mapProviderActionHandlers, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireCustomCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
|
|
28
|
+
import { createProviderProxyUrl, defineProviderExecutors, getProviderActionHandler, mapProviderActionHandlers, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireCustomCredential, requiredInputString, toProviderProxyError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
29
29
|
import { feishuAppBotActions, feishuAppBotProviderScopes } from "./actions.js";
|
|
30
30
|
import { feishuEvents } from "./trigger-on-event.js";
|
|
31
31
|
const service = "feishu_app_bot";
|
|
32
32
|
const feishuOpenBaseUrl = "https://open.feishu.cn/open-apis";
|
|
33
|
-
const feishuRequestTimeoutMs = 30_000;
|
|
34
33
|
const feishuTenantAccessTokenRefreshSkewMs = 60_000;
|
|
35
34
|
const feishuMaxImageUploadSourceBytes = 10 * 1024 * 1024;
|
|
36
35
|
const feishuMaxFileUploadSourceBytes = 30 * 1024 * 1024;
|
|
@@ -1030,7 +1029,7 @@ function normalizeMimeType(value) {
|
|
|
1030
1029
|
}
|
|
1031
1030
|
function createFeishuRequestSignal(parent) {
|
|
1032
1031
|
const controller = new AbortController();
|
|
1033
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
1032
|
+
const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
|
|
1034
1033
|
const abortFromParent = () => controller.abort(parent?.reason);
|
|
1035
1034
|
if (parent?.aborted) {
|
|
1036
1035
|
controller.abort(parent.reason);
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { createHash, createHmac } from "node:crypto";
|
|
3
3
|
import { compactObject, optionalRecord, optionalString, requiredRecord } from "../../core/cast.js";
|
|
4
|
-
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
|
|
4
|
+
import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
5
5
|
const service = "feishu_custom_bot";
|
|
6
6
|
const feishuCustomBotApiBaseUrl = "https://open.feishu.cn";
|
|
7
7
|
const feishuCustomBotWebhookPathPrefix = "/open-apis/bot/v2/hook/";
|
|
8
8
|
const feishuCustomBotAllowedWebhookHosts = new Set([new URL(feishuCustomBotApiBaseUrl).host]);
|
|
9
9
|
const feishuCustomBotMaxPayloadBytes = 20 * 1024;
|
|
10
|
-
const feishuCustomBotRequestTimeoutMs = 30_000;
|
|
11
10
|
const feishuCustomBotFetch = createProviderFetch({ skipDnsValidation: true });
|
|
12
11
|
const feishuCustomBotProbeBadRequestCode = 9499;
|
|
13
12
|
const feishuCustomBotKeywordNotFoundCode = 19024;
|
|
@@ -370,7 +369,7 @@ function requiredFeishuCustomBotObject(value, fieldName) {
|
|
|
370
369
|
}
|
|
371
370
|
function createFeishuCustomBotRequestSignal(parent) {
|
|
372
371
|
const controller = new AbortController();
|
|
373
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
372
|
+
const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
|
|
374
373
|
const abortFromParent = () => controller.abort(parent?.reason);
|
|
375
374
|
if (parent?.aborted) {
|
|
376
375
|
controller.abort(parent.reason);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "ffhub";
|
|
4
4
|
const ffhubApiBaseUrl = "https://api.ffhub.io/v1/";
|
|
5
5
|
const ffhubValidationPath = "/status";
|
|
6
|
-
const ffhubDefaultTimeoutMs = 30_000;
|
|
7
6
|
export const ffhubActionHandlers = {
|
|
8
7
|
async create_ffmpeg_task(input, context) {
|
|
9
8
|
const payload = await requestFfhub({
|
|
@@ -234,7 +233,7 @@ function readNullableInteger(value) {
|
|
|
234
233
|
}
|
|
235
234
|
function createFfhubRequestSignal(parent) {
|
|
236
235
|
const controller = new AbortController();
|
|
237
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
236
|
+
const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
|
|
238
237
|
const abortFromParent = () => controller.abort(parent?.reason);
|
|
239
238
|
if (parent?.aborted) {
|
|
240
239
|
controller.abort(parent.reason);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString } 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 = "fidel_api";
|
|
4
4
|
const fidelApiBaseUrl = "https://api.fidel.uk/v1";
|
|
5
|
-
const fidelApiTimeoutMs = 30_000;
|
|
6
5
|
export const fidelApiActionHandlers = {
|
|
7
6
|
async list_brands(input, context) {
|
|
8
7
|
return normalizeBrandListResponse(await requestFidelJson({
|
|
@@ -483,7 +482,7 @@ function tryParseJson(value) {
|
|
|
483
482
|
}
|
|
484
483
|
function createFidelRequestSignal(parent) {
|
|
485
484
|
const controller = new AbortController();
|
|
486
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
485
|
+
const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
|
|
487
486
|
const abortFromParent = () => controller.abort(parent?.reason);
|
|
488
487
|
if (parent?.aborted) {
|
|
489
488
|
controller.abort(parent.reason);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalRawString, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
|
|
2
2
|
import { assertPublicHttpUrl, storeResponseInTransit } from "../../core/request.js";
|
|
3
|
-
import { defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderErrorTextBody, readProviderTextBody, requireApiKeyCredential, requiredInputString, } from "../provider-runtime.js";
|
|
3
|
+
import { defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderErrorTextBody, readProviderTextBody, requireApiKeyCredential, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
4
|
const service = "files_com";
|
|
5
5
|
const filesComApiHostSuffix = ".files.com";
|
|
6
6
|
const filesComApiPathPrefix = "/api/rest/v1";
|
|
7
7
|
const filesComValidationEndpoint = "/users/me.json";
|
|
8
|
-
const filesComDefaultRequestTimeoutMs = 30_000;
|
|
9
8
|
export const filesComActionHandlers = {
|
|
10
9
|
list_folder(input, context) {
|
|
11
10
|
const page = optionalInteger(input.page);
|
|
@@ -346,7 +345,7 @@ function pickAccountLabel(payload) {
|
|
|
346
345
|
return optionalString(record.username) ?? optionalString(record.name) ?? optionalString(record.email);
|
|
347
346
|
}
|
|
348
347
|
function composeFilesComRequestSignal(parent) {
|
|
349
|
-
const timeout = AbortSignal.timeout(
|
|
348
|
+
const timeout = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
350
349
|
return parent ? AbortSignal.any([parent, timeout]) : timeout;
|
|
351
350
|
}
|
|
352
351
|
function isAbortError(error) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ProviderActionHandlers } from "../provider-runtime.ts";
|
|
2
2
|
import type { ApiKeyProviderContext } from "../provider-runtime.ts";
|
|
3
3
|
export declare const fireberryApiBaseUrl = "https://api.fireberry.com";
|
|
4
|
-
export declare const fireberryDefaultRequestTimeoutMs = 30000;
|
|
5
4
|
type FireberryActionContext = ApiKeyProviderContext;
|
|
6
5
|
type FireberryActionHandler = (input: Record<string, unknown>, context: FireberryActionContext) => Promise<unknown>;
|
|
7
6
|
export declare const fireberryActionHandlers: ProviderActionHandlers<"fireberry", FireberryActionHandler>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { compactObject, optionalNumber, optionalRecord, requiredRecord } from "../../core/cast.js";
|
|
3
|
-
import { isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString } from "../provider-runtime.js";
|
|
3
|
+
import { isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
4
|
export const fireberryApiBaseUrl = "https://api.fireberry.com";
|
|
5
|
-
export const fireberryDefaultRequestTimeoutMs = 30_000;
|
|
6
5
|
export const fireberryActionHandlers = {
|
|
7
6
|
async query_records(input, context) {
|
|
8
7
|
const payload = await requestFireberryJson({
|
|
@@ -163,8 +162,8 @@ async function deleteFireberryRecord(objectName, input, context) {
|
|
|
163
162
|
}
|
|
164
163
|
async function requestFireberryJson(input) {
|
|
165
164
|
const signal = input.signal
|
|
166
|
-
? AbortSignal.any([input.signal, AbortSignal.timeout(
|
|
167
|
-
: AbortSignal.timeout(
|
|
165
|
+
? AbortSignal.any([input.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
|
|
166
|
+
: AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
168
167
|
try {
|
|
169
168
|
const response = await input.fetcher(buildFireberryUrl(input.path, input.query), {
|
|
170
169
|
method: input.method,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, looseArray, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "firehydrant";
|
|
4
4
|
const firehydrantApiBaseUrl = "https://api.firehydrant.io/v1";
|
|
5
|
-
const firehydrantRequestTimeoutMs = 30_000;
|
|
6
5
|
export const firehydrantActionHandlers = {
|
|
7
6
|
list_incidents(input, context) {
|
|
8
7
|
return listCollection("incidents", "/incidents", input, context, normalizeIncident);
|
|
@@ -245,7 +244,7 @@ async function requestJson(input) {
|
|
|
245
244
|
url.searchParams.set(key, value);
|
|
246
245
|
}
|
|
247
246
|
}
|
|
248
|
-
const timeoutSignal = AbortSignal.timeout(
|
|
247
|
+
const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
249
248
|
const signal = input.signal ? AbortSignal.any([input.signal, timeoutSignal]) : timeoutSignal;
|
|
250
249
|
let response;
|
|
251
250
|
try {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compactObject, optionalInteger, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
const service = "float";
|
|
4
4
|
const floatApiBaseUrl = "https://api.float.com/v3";
|
|
5
|
-
const floatDefaultRequestTimeoutMs = 30_000;
|
|
6
5
|
export const floatActionHandlers = {
|
|
7
6
|
async list_accounts(input, context) {
|
|
8
7
|
const response = await requestFloatJson(context, {
|
|
@@ -139,7 +138,7 @@ export const credentialValidators = {
|
|
|
139
138
|
},
|
|
140
139
|
};
|
|
141
140
|
async function requestFloatJson(context, input) {
|
|
142
|
-
const timeoutSignal = AbortSignal.timeout(
|
|
141
|
+
const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
|
|
143
142
|
const signal = context.signal ? AbortSignal.any([context.signal, timeoutSignal]) : timeoutSignal;
|
|
144
143
|
try {
|
|
145
144
|
const response = await context.fetcher(buildFloatUrl(input.path, input.query), {
|