@oomol-lab/open-connector 1.9.2 → 1.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/assets/open-connector/catalog/apps/allratestoday.json +174 -0
- package/assets/open-connector/catalog/apps/slackbot.json +20 -1
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +1 -1
- package/src/connection-error.d.ts +7 -0
- package/src/connection-error.js +10 -0
- package/src/connection-service.d.ts +2 -50
- package/src/connection-service.js +6 -130
- package/src/connection-store.d.ts +41 -0
- package/src/connection-store.js +1 -0
- package/src/core/guarded-fetch.d.ts +3 -0
- package/src/core/guarded-fetch.js +8 -1
- package/src/core/provider-network-policy.d.ts +15 -0
- package/src/core/provider-network-policy.js +11 -0
- package/src/core/request.d.ts +18 -14
- package/src/core/request.js +11 -35
- package/src/credential-resolver.d.ts +24 -0
- package/src/credential-resolver.js +131 -0
- package/src/mcp.js +1 -1
- package/src/oauth/oauth-client-config-service.d.ts +1 -1
- package/src/oauth/oauth-client-config-service.js +14 -2
- package/src/oauth/oauth-credential-refresh-service.js +1 -1
- package/src/oauth/oauth-flow-service.d.ts +9 -1
- package/src/oauth/oauth-flow-service.js +11 -1
- package/src/providers/abuseipdb/executors.js +3 -4
- package/src/providers/action-contracts.generated.d.ts +1 -0
- package/src/providers/addressfinder/executors.js +2 -3
- package/src/providers/aeroleads/executors.js +3 -3
- package/src/providers/affinity/runtime.js +6 -7
- package/src/providers/aftership/executors.js +2 -2
- package/src/providers/agent_mail/runtime.js +2 -2
- package/src/providers/agentql/runtime.js +2 -2
- package/src/providers/agenty/runtime.js +5 -6
- package/src/providers/agiled/runtime.d.ts +0 -1
- package/src/providers/agiled/runtime.js +2 -3
- package/src/providers/agility/runtime.js +2 -3
- package/src/providers/ahrefs/runtime.js +3 -3
- package/src/providers/aifinmarket/runtime.js +6 -7
- package/src/providers/airtable/executors.js +3 -3
- package/src/providers/alchemy/runtime.js +2 -2
- package/src/providers/algolia/runtime.js +3 -3
- package/src/providers/aliyun_oss/executors.js +7 -7
- package/src/providers/allratestoday/executors.d.ts +3 -0
- package/src/providers/allratestoday/executors.js +18 -0
- package/src/providers/allratestoday/runtime.d.ts +17 -0
- package/src/providers/allratestoday/runtime.js +104 -0
- package/src/providers/alpaca/runtime.js +2 -3
- package/src/providers/alpha_vantage/runtime.js +2 -2
- package/src/providers/alt_text_ai/runtime.js +2 -2
- package/src/providers/altiria/executors.js +3 -3
- package/src/providers/amap/runtime.js +3 -3
- package/src/providers/ambee/runtime.js +2 -2
- package/src/providers/ambivo/executors.js +3 -3
- package/src/providers/amilia/runtime.js +1 -1
- package/src/providers/amplemarket/runtime.js +2 -2
- package/src/providers/amplitude/runtime.js +3 -3
- package/src/providers/anysearch/runtime.js +4 -4
- package/src/providers/apaleo/runtime.js +2 -2
- package/src/providers/api_sports/executors.js +3 -4
- package/src/providers/apiverve/executors.js +2 -3
- package/src/providers/apollo/executors.js +2 -3
- package/src/providers/appcircle/runtime.js +5 -5
- package/src/providers/appdrag/executors.js +2 -3
- package/src/providers/arcgis_online/executors.js +2 -2
- package/src/providers/auth0_management/runtime.js +2 -3
- package/src/providers/autoblogger/executors.js +3 -3
- package/src/providers/baidu_maps/runtime.js +3 -3
- package/src/providers/baidu_netdisk/runtime-mcp.js +3 -4
- package/src/providers/bark/executors.js +5 -5
- package/src/providers/bitrise/runtime.js +3 -3
- package/src/providers/bouncer/executors.js +3 -4
- package/src/providers/browse_ai/runtime.js +3 -4
- package/src/providers/browserstack/executors.js +6 -7
- package/src/providers/buildkite/runtime.js +3 -3
- package/src/providers/bunnycdn/runtime.js +3 -3
- package/src/providers/businessmap/runtime.js +6 -7
- package/src/providers/buttondown/runtime.js +2 -2
- package/src/providers/byteforms/runtime.js +2 -2
- package/src/providers/calendly/runtime.js +2 -2
- package/src/providers/captainbi/runtime.js +6 -6
- package/src/providers/castingwords/runtime.js +1 -1
- package/src/providers/chatpdf/runtime.js +4 -4
- package/src/providers/check/executors.js +3 -4
- package/src/providers/checkly/executors.js +3 -4
- package/src/providers/chengxin/runtime.js +3 -3
- package/src/providers/cincopa/executors.js +3 -4
- package/src/providers/circle/executors.js +3 -4
- package/src/providers/clearout/executors.js +1 -2
- package/src/providers/clickhelp/runtime.js +5 -5
- package/src/providers/clickhouse/runtime.js +4 -4
- package/src/providers/clinicalkey/runtime.js +3 -3
- package/src/providers/clinicaltrials_gov/runtime.js +4 -5
- package/src/providers/clockify/runtime.js +4 -4
- package/src/providers/close/runtime.js +3 -3
- package/src/providers/cloudconvert/runtime.js +8 -9
- package/src/providers/cloudflare_dns/runtime.js +2 -2
- package/src/providers/cloudflare_email_routing/runtime.js +2 -2
- package/src/providers/cloudflare_r2/runtime.js +5 -5
- package/src/providers/cloudflare_worker/runtime.js +10 -10
- package/src/providers/cloudinary/runtime.js +4 -4
- package/src/providers/cloudlayer/runtime.js +5 -5
- package/src/providers/codacy/runtime.js +2 -2
- package/src/providers/codemagic/runtime.js +2 -2
- package/src/providers/confluence/executors.js +4 -4
- package/src/providers/confluence/runtime.d.ts +0 -1
- package/src/providers/confluence/runtime.js +6 -7
- package/src/providers/contactout/runtime.js +5 -5
- package/src/providers/contentful/runtime.js +2 -2
- package/src/providers/contentstack_content_delivery/runtime.js +1 -1
- package/src/providers/cronly/runtime.js +2 -2
- package/src/providers/crossref/runtime.js +3 -3
- package/src/providers/cutt_ly/runtime.js +3 -3
- package/src/providers/cyberimpact/runtime.js +3 -3
- package/src/providers/dachser/executors.js +2 -2
- package/src/providers/dailybot/runtime.js +1 -1
- package/src/providers/databox/runtime.js +2 -2
- package/src/providers/databricks/runtime.js +2 -2
- package/src/providers/datacite/runtime.js +1 -1
- package/src/providers/datadog/executors.js +3 -4
- package/src/providers/datascope/runtime.js +2 -2
- package/src/providers/daytona/executors.js +3 -3
- package/src/providers/deepgram/runtime.js +2 -2
- package/src/providers/deepl/runtime.js +4 -4
- package/src/providers/detrack/executors.js +5 -5
- package/src/providers/deutschlandgpt/runtime.js +2 -2
- package/src/providers/dialmycalls/runtime.js +4 -4
- package/src/providers/diffbot/executors.js +4 -4
- package/src/providers/digistore24/executors.js +3 -3
- package/src/providers/dingtalk_bot/executors.js +1 -1
- package/src/providers/discourse/executors.d.ts +0 -1
- package/src/providers/discourse/executors.js +6 -7
- package/src/providers/docugenerate/runtime.js +3 -3
- package/src/providers/doppler/runtime.shared.js +3 -3
- package/src/providers/doppler_marketing_automation/runtime.js +4 -4
- package/src/providers/dovetail/runtime.js +2 -2
- package/src/providers/dropcontact/runtime.js +3 -3
- package/src/providers/dub/executors.js +6 -6
- package/src/providers/dumplingai/runtime.js +2 -2
- package/src/providers/elevenlabs/executors.js +4 -4
- package/src/providers/elevenreader/runtime.js +1 -1
- package/src/providers/emailoctopus/runtime.js +4 -4
- package/src/providers/embase/runtime.js +3 -3
- package/src/providers/emelia/executors.js +2 -2
- package/src/providers/enigma/executors.js +3 -3
- package/src/providers/eodhd_apis/executors.js +2 -2
- package/src/providers/eventzilla/runtime.js +3 -4
- package/src/providers/evervault/runtime.js +1 -1
- package/src/providers/excalidraw_mcp/runtime.js +3 -4
- package/src/providers/excel/runtime.js +6 -6
- package/src/providers/expofp/runtime.js +2 -2
- package/src/providers/faktoora/runtime.js +5 -5
- package/src/providers/fast_note_sync/runtime.js +2 -2
- package/src/providers/feathery/executors.js +2 -3
- package/src/providers/feishu_app_bot/executors.js +2 -3
- package/src/providers/feishu_custom_bot/executors.js +2 -3
- package/src/providers/ffhub/executors.js +2 -3
- package/src/providers/fidel_api/executors.js +2 -3
- package/src/providers/files_com/executors.js +2 -3
- package/src/providers/fireberry/runtime.d.ts +0 -1
- package/src/providers/fireberry/runtime.js +3 -4
- package/src/providers/firehydrant/executors.js +2 -3
- package/src/providers/float/executors.js +2 -3
- package/src/providers/flomo/executors.js +5 -6
- package/src/providers/flowiseai/executors.js +2 -3
- package/src/providers/fluxguard/executors.js +2 -3
- package/src/providers/folk/executors.js +2 -3
- package/src/providers/football_data/executors.js +2 -3
- package/src/providers/forem/executors.js +2 -3
- package/src/providers/formbricks/executors.js +2 -3
- package/src/providers/formsite/executors.js +3 -4
- package/src/providers/formspree/executors.js +2 -2
- package/src/providers/freshdesk/executors.js +3 -4
- package/src/providers/freshservice/executors.js +3 -4
- package/src/providers/freshteam/runtime.js +3 -4
- package/src/providers/full_contact/executors.js +3 -3
- package/src/providers/fusion-api/runtime.js +2 -3
- package/src/providers/gagelist/executors.js +3 -3
- package/src/providers/gainsight_nxt/executors.js +2 -2
- package/src/providers/gamma/executors.js +4 -3
- package/src/providers/gangtise/runtime.js +3 -4
- package/src/providers/gatherup/runtime.js +1 -1
- package/src/providers/geckoboard/executors.js +2 -3
- package/src/providers/gemini/runtime.d.ts +0 -1
- package/src/providers/gemini/runtime.js +5 -6
- package/src/providers/genpage/runtime.js +2 -2
- package/src/providers/geokeo/executors.js +4 -4
- package/src/providers/getnote/runtime.js +2 -3
- package/src/providers/github/runtime-shared.js +2 -2
- package/src/providers/glyphic/runtime.js +3 -4
- package/src/providers/gmail/executors.js +125 -27
- package/src/providers/gong/runtime.js +6 -7
- package/src/providers/googlecalendar/runtime-shared.js +3 -4
- package/src/providers/googledrive/runtime-request.js +2 -3
- package/src/providers/googlesheets/runtime-shared.js +3 -4
- package/src/providers/gorgias/runtime.js +4 -4
- package/src/providers/gotify/executors.js +7 -8
- package/src/providers/greenhouse/executors.js +3 -3
- package/src/providers/gumloop/executors.js +2 -3
- package/src/providers/gumroad/executors.js +2 -3
- package/src/providers/habitica/executors.js +2 -3
- package/src/providers/hackerrank_work/executors.js +2 -3
- package/src/providers/harvest/executors.js +3 -4
- package/src/providers/haveibeenpwned/executors.js +2 -3
- package/src/providers/headout/executors.js +3 -4
- package/src/providers/healthchecks_io/executors.js +2 -3
- package/src/providers/helium10/runtime.js +4 -5
- package/src/providers/helpdesk/runtime.js +4 -4
- package/src/providers/home_assistant/runtime-ws.js +9 -10
- package/src/providers/hotjar/executors.js +4 -4
- package/src/providers/httpsms/runtime.js +3 -4
- package/src/providers/hub_planner/executors.js +3 -3
- package/src/providers/hubspot/runtime.js +3 -4
- package/src/providers/humaans/runtime.js +3 -3
- package/src/providers/hunter/runtime.js +3 -3
- package/src/providers/icypeas/executors.js +3 -4
- package/src/providers/ima/runtime.js +7 -7
- package/src/providers/infolobby/runtime.js +6 -6
- package/src/providers/instabot/runtime.js +6 -6
- package/src/providers/instatus/runtime.js +4 -4
- package/src/providers/intuiface/executors.js +3 -3
- package/src/providers/iplocate/runtime.js +4 -5
- package/src/providers/ipregistry/executors.js +2 -2
- package/src/providers/jiminny/runtime.js +4 -4
- package/src/providers/jin10/executors.js +4 -5
- package/src/providers/jira/executors.js +4 -4
- package/src/providers/kaleido/runtime.js +2 -2
- package/src/providers/kandji/runtime.js +2 -2
- package/src/providers/keygen/executors.js +4 -4
- package/src/providers/keyword/runtime.js +2 -2
- package/src/providers/kie_ai/executors.js +1 -1
- package/src/providers/kintone/runtime.js +1 -1
- package/src/providers/kit/runtime.js +2 -2
- package/src/providers/klangio/runtime.js +4 -4
- package/src/providers/klaviyo/executors.js +1 -1
- package/src/providers/klazify/executors.js +3 -3
- package/src/providers/klipfolio/runtime.js +3 -3
- package/src/providers/knack/executors.js +1 -1
- package/src/providers/kommo/runtime.js +2 -2
- package/src/providers/kontent_ai/executors.js +3 -4
- package/src/providers/l2s/executors.js +3 -4
- package/src/providers/latchshot/executors.js +2 -2
- package/src/providers/leadboxer/runtime.js +4 -4
- package/src/providers/leadiq/runtime.js +4 -4
- package/src/providers/linguapop/runtime.js +1 -1
- package/src/providers/lingvanex_translation_api/runtime.js +5 -6
- package/src/providers/lingxing_mcp/runtime.js +3 -4
- package/src/providers/linkup/runtime.js +5 -6
- package/src/providers/liveagent/executors.js +6 -6
- package/src/providers/loops/executors.js +2 -2
- package/src/providers/loyjoy/runtime.js +2 -2
- package/src/providers/loyverse/executors.js +4 -4
- package/src/providers/lusha/runtime.js +3 -3
- package/src/providers/mailbluster/runtime.js +3 -4
- package/src/providers/mailcoach/runtime.js +4 -4
- package/src/providers/mailgenius/executors.js +3 -4
- package/src/providers/mailjet/runtime.js +3 -3
- package/src/providers/mails_so/runtime.js +1 -1
- package/src/providers/mailsoftly/runtime.js +5 -5
- package/src/providers/mailtrap/runtime.js +4 -5
- package/src/providers/manus/runtime.js +3 -3
- package/src/providers/mautic/runtime.js +3 -3
- package/src/providers/megaventory/runtime.js +3 -3
- package/src/providers/memberstack/runtime.js +2 -2
- package/src/providers/mendeley/executors.js +2 -3
- package/src/providers/mindbody/runtime.js +3 -3
- package/src/providers/minerstat/executors.js +3 -3
- package/src/providers/mintlify/runtime.js +3 -3
- package/src/providers/missive/executors.js +3 -5
- package/src/providers/mixpanel/executors.js +3 -3
- package/src/providers/mobile_text_alerts/runtime.js +3 -3
- package/src/providers/mocean/executors.js +3 -3
- package/src/providers/moco/executors.js +5 -5
- package/src/providers/moesif/runtime.js +4 -4
- package/src/providers/monday/runtime-common.js +3 -3
- package/src/providers/monica_crm/runtime.js +4 -4
- package/src/providers/moorcheh/runtime.js +3 -3
- package/src/providers/more_trees/runtime.d.ts +0 -1
- package/src/providers/more_trees/runtime.js +7 -8
- package/src/providers/moxie/runtime.js +2 -2
- package/src/providers/msg91/runtime.js +4 -4
- package/src/providers/mx/runtime.js +1 -1
- package/src/providers/needle/runtime.js +3 -4
- package/src/providers/netlify/runtime.js +2 -3
- package/src/providers/niftyimages/executors.js +2 -2
- package/src/providers/northbeam/runtime.js +1 -1
- package/src/providers/nozbe_teams/executors.js +4 -4
- package/src/providers/npm/runtime.js +4 -4
- package/src/providers/nusii_proposals/runtime.js +2 -2
- package/src/providers/ocr_web_service/executors.js +4 -4
- package/src/providers/octopus_deploy/executors.js +3 -3
- package/src/providers/oksign/runtime.js +3 -4
- package/src/providers/one_drive/executors.js +6 -6
- package/src/providers/one_password_events/runtime.js +1 -1
- package/src/providers/onfleet/runtime.js +3 -3
- package/src/providers/onlyoffice_docspace/runtime.js +4 -4
- package/src/providers/oomnitza/runtime.js +3 -4
- package/src/providers/otter_ai/executors.js +2 -2
- package/src/providers/oura/runtime.js +1 -1
- package/src/providers/paddle/executors.js +3 -3
- package/src/providers/pagerduty/runtime.js +2 -2
- package/src/providers/paradym/runtime.js +4 -4
- package/src/providers/parallel/runtime.js +3 -3
- package/src/providers/partner_stack_partner/runtime.js +1 -1
- package/src/providers/payrexx/runtime.js +5 -6
- package/src/providers/permit_io/runtime.js +2 -2
- package/src/providers/pinboard/executors.js +5 -6
- package/src/providers/pinpoint/runtime.js +2 -2
- package/src/providers/placid/runtime.js +3 -3
- package/src/providers/plain/runtime.js +5 -5
- package/src/providers/planetscale/runtime.js +2 -2
- package/src/providers/planhat/executors.js +6 -6
- package/src/providers/plausible_analytics/runtime.js +3 -3
- package/src/providers/posthog/runtime.js +3 -3
- package/src/providers/predis_ai/executors.js +3 -3
- package/src/providers/printavo/runtime.js +2 -2
- package/src/providers/prospeo/runtime.js +2 -3
- package/src/providers/provider-runtime.d.ts +13 -1
- package/src/providers/provider-runtime.js +25 -10
- package/src/providers/push_by_techulus/executors.js +3 -4
- package/src/providers/pushover/runtime.js +4 -5
- package/src/providers/pushsafer/runtime.js +4 -5
- package/src/providers/pylon/runtime.js +2 -2
- package/src/providers/qase/runtime.js +3 -3
- package/src/providers/qdrant/runtime.js +1 -1
- package/src/providers/qichacha/runtime.js +2 -2
- package/src/providers/qingflow/runtime.js +2 -2
- package/src/providers/quickchart/runtime.js +2 -2
- package/src/providers/quintadb/runtime.js +2 -2
- package/src/providers/quo/runtime.js +2 -2
- package/src/providers/rawg/runtime.js +4 -4
- package/src/providers/razorpay/runtime.js +4 -5
- package/src/providers/readme/runtime.js +6 -6
- package/src/providers/referralhero/runtime.js +3 -3
- package/src/providers/registry.generated.js +1 -0
- package/src/providers/render/executors.js +3 -3
- package/src/providers/respond_io/executors.js +3 -3
- package/src/providers/reversecontact/runtime.js +3 -3
- package/src/providers/ritekit/executors.js +2 -2
- package/src/providers/riveter/executors.js +2 -3
- package/src/providers/rocket_chat/executors.js +3 -4
- package/src/providers/rocket_reach/executors.js +3 -4
- package/src/providers/saucelabs/runtime.js +4 -4
- package/src/providers/scopus/runtime.js +3 -3
- package/src/providers/scrape_do/executors.js +2 -2
- package/src/providers/scraperapi/runtime.js +4 -4
- package/src/providers/scrapfly/executors.js +2 -2
- package/src/providers/scrapingant/executors.js +6 -7
- package/src/providers/scrapingbee/executors.js +3 -3
- package/src/providers/scrapingdog/executors.js +1 -1
- package/src/providers/screenshot_fyi/executors.js +3 -4
- package/src/providers/screenshotbase/runtime.js +3 -3
- package/src/providers/search_api/runtime.js +2 -2
- package/src/providers/securitytrails/executors.js +2 -2
- package/src/providers/semantic_scholar/executors.js +2 -2
- package/src/providers/sendbird/executors.js +2 -2
- package/src/providers/sendfox/executors.js +3 -3
- package/src/providers/sendgrid/executors.js +5 -5
- package/src/providers/sendmator/runtime.js +3 -4
- package/src/providers/seqera/runtime.js +3 -4
- package/src/providers/serveravatar/executors.js +3 -3
- package/src/providers/sheetdb/runtime.js +2 -2
- package/src/providers/short_menu/runtime.js +3 -3
- package/src/providers/shortcut/runtime.js +3 -3
- package/src/providers/shortpixel/runtime.js +2 -2
- package/src/providers/shotstack/runtime.js +4 -4
- package/src/providers/signpath/runtime.js +2 -2
- package/src/providers/signwell/runtime.js +5 -6
- package/src/providers/similarweb_digitalrank_api/runtime.js +3 -3
- package/src/providers/simla/runtime.js +5 -5
- package/src/providers/simplybook_me/executors.js +6 -6
- package/src/providers/sitespeakai/runtime.js +3 -3
- package/src/providers/slickdeals/runtime.js +2 -3
- package/src/providers/smartsuite/runtime.js +3 -3
- package/src/providers/sonarcloud/runtime.js +5 -5
- package/src/providers/sorftime/runtime.js +8 -8
- package/src/providers/spider/runtime.js +2 -2
- package/src/providers/splunk_http_event_collector/runtime.js +7 -8
- package/src/providers/sportsdata/runtime.js +4 -4
- package/src/providers/spyfu/runtime.js +4 -5
- package/src/providers/square/runtime.js +4 -4
- package/src/providers/stannp/runtime.js +2 -2
- package/src/providers/stripe/executors.js +2 -2
- package/src/providers/supermemory/runtime.js +3 -3
- package/src/providers/survey_monkey/runtime.js +3 -3
- package/src/providers/taiga/runtime.js +4 -4
- package/src/providers/talenox/executors.js +4 -4
- package/src/providers/tally/runtime.js +3 -3
- package/src/providers/tavily/runtime.js +3 -4
- package/src/providers/teamcamp/executors.js +2 -2
- package/src/providers/teamtailor/executors.js +2 -2
- package/src/providers/telegram/executors.js +6 -7
- package/src/providers/teltel/executors.js +2 -2
- package/src/providers/templated/executors.js +3 -3
- package/src/providers/tencent_docs/runtime.js +4 -4
- package/src/providers/tencent_maps/runtime.js +3 -3
- package/src/providers/textcortex/runtime.js +3 -3
- package/src/providers/the_cat_api/runtime.js +3 -3
- package/src/providers/the_colony/runtime.js +3 -3
- package/src/providers/the_odds_api/runtime.js +3 -4
- package/src/providers/the_official_board/runtime.js +4 -4
- package/src/providers/thehive/runtime.js +1 -1
- package/src/providers/tikhub/endpoint-catalog.js +2 -3
- package/src/providers/tiktok_business/runtime.js +2 -2
- package/src/providers/timecamp/runtime.js +2 -2
- package/src/providers/timelink/runtime.js +2 -2
- package/src/providers/totp/runtime.js +4 -5
- package/src/providers/trawlingweb/runtime.js +2 -2
- package/src/providers/trilium/runtime.js +2 -2
- package/src/providers/triple_whale/runtime.js +3 -3
- package/src/providers/truvera/runtime.js +2 -2
- package/src/providers/tuskr/runtime.js +2 -2
- package/src/providers/typebot/runtime.js +2 -2
- package/src/providers/typeform/runtime.js +2 -2
- package/src/providers/uptimerobot/executors.js +3 -4
- package/src/providers/v2ex/runtime.js +8 -9
- package/src/providers/valyu/runtime.js +3 -3
- package/src/providers/vapi/runtime.js +4 -4
- package/src/providers/vectorshift/runtime.js +3 -3
- package/src/providers/venafitlsprotectcloud/runtime.js +2 -3
- package/src/providers/venafitlsprotectdatacenter/runtime.js +2 -3
- package/src/providers/vida/runtime.js +4 -4
- package/src/providers/vonage/runtime.js +3 -3
- package/src/providers/walmart_marketplace/runtime.js +5 -5
- package/src/providers/weatherapi/executors.js +3 -4
- package/src/providers/web_of_science/runtime.js +4 -4
- package/src/providers/web_of_science_expanded/runtime.js +9 -9
- package/src/providers/webex/runtime.js +3 -3
- package/src/providers/webinarjam/runtime.js +4 -4
- package/src/providers/webscraping_ai/runtime.js +3 -3
- package/src/providers/webvizio/runtime.js +3 -4
- package/src/providers/wecom_bot/smart-runtime.js +4 -5
- package/src/providers/wecom_mcp/runtime.js +3 -4
- package/src/providers/wejam_ai/runtime.js +3 -3
- package/src/providers/wolfram_alpha_api/runtime.js +3 -3
- package/src/providers/woocommerce/runtime.js +1 -1
- package/src/providers/woodpecker_co/executors.js +3 -4
- package/src/providers/woot/runtime.js +6 -6
- package/src/providers/workable/runtime.js +3 -3
- package/src/providers/workday/runtime.js +4 -4
- package/src/providers/workiom/runtime.js +2 -2
- package/src/providers/workiz/runtime.js +2 -2
- package/src/providers/workpath/executors.js +3 -4
- package/src/providers/worksnaps/executors.js +2 -2
- package/src/providers/y_gy/runtime.js +2 -2
- package/src/providers/zenscrape/runtime.js +3 -3
- package/src/providers/zep/runtime.js +4 -4
- package/src/providers/zeplin/runtime.js +2 -2
- package/src/providers/zhihu/executors.js +6 -6
- package/src/providers/zylvie/runtime.js +4 -4
- package/src/saas/saas-cleanup-service.d.ts +2 -0
- package/src/saas/saas-cleanup-service.js +2 -1
- package/src/saas/saas-execution-service.d.ts +1 -1
- package/src/server/actions/action-runner.js +1 -1
- package/src/server/api/auth.js +3 -0
- package/src/server/api/connection-routes.js +1 -1
- package/src/server/api/console-catalog-routes.js +1 -1
- package/src/server/api/console-oauth-routes.d.ts +3 -1
- package/src/server/api/console-oauth-routes.js +22 -9
- package/src/server/api/oauth-completion-page.d.ts +57 -0
- package/src/server/api/oauth-completion-page.js +135 -10
- package/src/server/api/openapi.d.ts +5 -0
- package/src/server/api/openapi.js +62 -2
- package/src/server/api/runtime-api.d.ts +2 -1
- package/src/server/api/runtime-app-routes.js +1 -1
- package/src/server/api/runtime-execution-routes.js +2 -1
- package/src/server/connect-app.d.ts +4 -0
- package/src/server/connect-app.js +14 -1
- package/src/server/connect-server.d.ts +6 -0
- package/src/server/connect-server.js +114 -4
- package/src/server/connector-runtime.d.ts +6 -8
- package/src/server/connector-runtime.js +8 -28
- package/src/server/proxy/proxy-runner.js +1 -1
- package/src/server/slack-event-verification.d.ts +37 -0
- package/src/server/slack-event-verification.js +91 -0
- package/src/server/storage/connection-request-store.d.ts +1 -1
- package/src/server/storage/connection-store.d.ts +1 -1
- package/src/server/storage/postgres/runtime-store.d.ts +1 -1
- package/src/server/storage/runtime-database.d.ts +1 -1
- package/src/server/storage/saas-project-store.d.ts +1 -1
- package/src/triggers/maintenance.d.ts +2 -0
- package/src/triggers/maintenance.js +2 -1
- package/src/triggers/sources/slack-signature.d.ts +10 -0
- package/src/triggers/sources/slack-signature.js +13 -0
- package/src/triggers/sources/slack.js +9 -11
- package/src/triggers/trigger-runner.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
2
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "mocean";
|
|
4
4
|
const moceanApiBaseUrl = "https://rest.moceanapi.com/rest/2";
|
|
5
5
|
export const proxy = defineProviderProxy({
|
|
@@ -163,9 +163,9 @@ function mapMoceanStatusError(status, message, phase) {
|
|
|
163
163
|
return new ProviderRequestError(429, message);
|
|
164
164
|
}
|
|
165
165
|
if ([2, 3, 5, 6, 14, 26, 28, 29, 34, 46, 51, 72].includes(status)) {
|
|
166
|
-
return
|
|
166
|
+
return providerInputError(message);
|
|
167
167
|
}
|
|
168
|
-
return
|
|
168
|
+
return providerResponseError(message);
|
|
169
169
|
}
|
|
170
170
|
function mapMoceanHttpError(response, payload, phase) {
|
|
171
171
|
const payloadRecord = optionalRecord(payload);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalBooleanOrNull, optionalInteger, optionalRecord, optionalString, rawStringOrNull, } from "../../core/cast.js";
|
|
2
|
-
import { defineProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
2
|
+
import { defineProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, requireApiKeyCredential, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "moco";
|
|
4
4
|
export const proxy = defineProviderProxy({
|
|
5
5
|
service,
|
|
@@ -349,21 +349,21 @@ function readNextPage(linkHeader) {
|
|
|
349
349
|
function mapMocoError(response, payload, phase, notFoundAsInvalidInput = false) {
|
|
350
350
|
const message = extractErrorMessage(payload) ?? (response.statusText || "MOCO request failed");
|
|
351
351
|
if (phase === "validate" && (response.status === 401 || response.status === 403)) {
|
|
352
|
-
return
|
|
352
|
+
return providerInputError(message);
|
|
353
353
|
}
|
|
354
354
|
if (phase === "execute" && (response.status === 401 || response.status === 403)) {
|
|
355
355
|
return new ProviderRequestError(401, message);
|
|
356
356
|
}
|
|
357
357
|
if (response.status === 404 && notFoundAsInvalidInput) {
|
|
358
|
-
return
|
|
358
|
+
return providerInputError(message);
|
|
359
359
|
}
|
|
360
360
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
361
|
-
return
|
|
361
|
+
return providerInputError(message);
|
|
362
362
|
}
|
|
363
363
|
if (response.status === 429) {
|
|
364
364
|
return new ProviderRequestError(429, message);
|
|
365
365
|
}
|
|
366
|
-
return
|
|
366
|
+
return providerResponseError(message);
|
|
367
367
|
}
|
|
368
368
|
async function readResponsePayload(response) {
|
|
369
369
|
const text = await response.text().catch(() => "");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
|
|
2
2
|
import { queryParams } from "../../core/request.js";
|
|
3
|
-
import { createProviderTimeout, isAbortLikeError, providerFetch, ProviderRequestError, providerUserAgent, requiredInputString, } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, isAbortLikeError, providerFetch, ProviderRequestError, providerUserAgent, requiredInputString, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
4
4
|
export const moesifApiBaseUrl = "https://api.moesif.com/v1";
|
|
5
5
|
const defaultOrganizationId = "~";
|
|
6
6
|
const defaultAppId = "~";
|
|
@@ -76,7 +76,7 @@ export const moesifActionHandlers = {
|
|
|
76
76
|
export async function validateMoesifCredential(apiKey, fetcher = providerFetch, signal) {
|
|
77
77
|
const payload = await requestMoesifJson({
|
|
78
78
|
path: buildOrganizationPath(undefined, "apps"),
|
|
79
|
-
apiKey: requiredString(apiKey, "apiKey",
|
|
79
|
+
apiKey: requiredString(apiKey, "apiKey", providerInputError),
|
|
80
80
|
params: {
|
|
81
81
|
take: "1",
|
|
82
82
|
},
|
|
@@ -168,7 +168,7 @@ function createMoesifError(status, payload, phase) {
|
|
|
168
168
|
return new ProviderRequestError(429, message);
|
|
169
169
|
}
|
|
170
170
|
if (phase === "validate" && status >= 400 && status < 500) {
|
|
171
|
-
return
|
|
171
|
+
return providerInputError(message);
|
|
172
172
|
}
|
|
173
173
|
if (phase === "execute" && (status === 401 || status === 403)) {
|
|
174
174
|
return new ProviderRequestError(status, message);
|
|
@@ -250,7 +250,7 @@ function normalizeWorkspace(payload) {
|
|
|
250
250
|
function requireRecord(value, message) {
|
|
251
251
|
const record = optionalRecord(value);
|
|
252
252
|
if (!record) {
|
|
253
|
-
throw
|
|
253
|
+
throw providerResponseError(message);
|
|
254
254
|
}
|
|
255
255
|
return record;
|
|
256
256
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalRecord as asOptionalObject, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
|
|
2
3
|
import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
|
|
3
4
|
import { getMondayProviderScopeSurface } from "./scopes.js";
|
|
4
5
|
export const mondayApiUrl = "https://api.monday.com/v2";
|
|
5
6
|
export const mondayApiVersion = "2026-04";
|
|
6
7
|
export const mondayUserAgent = providerUserAgent;
|
|
7
|
-
const mondayDefaultRequestTimeoutMs = 30_000;
|
|
8
8
|
export async function validateMondayCredential(input, fetcher = providerFetch, options = {}) {
|
|
9
9
|
const apiKey = optionalString(input.apiKey);
|
|
10
10
|
if (!apiKey) {
|
|
@@ -47,7 +47,7 @@ export async function fetchMondayCurrentUser(apiKey, fetcher, phase) {
|
|
|
47
47
|
}, fetcher, phase);
|
|
48
48
|
}
|
|
49
49
|
export async function mondayGraphqlRequest(apiKey, input, fetcher, phase) {
|
|
50
|
-
const timeout = createProviderTimeout(undefined
|
|
50
|
+
const timeout = createProviderTimeout(undefined);
|
|
51
51
|
let response;
|
|
52
52
|
try {
|
|
53
53
|
response = await fetcher(mondayApiUrl, {
|
|
@@ -71,7 +71,7 @@ export async function mondayGraphqlRequest(apiKey, input, fetcher, phase) {
|
|
|
71
71
|
throw error;
|
|
72
72
|
}
|
|
73
73
|
if (timeout.didTimeout() || isAbortLikeError(error)) {
|
|
74
|
-
throw new ProviderRequestError(504, `monday request timed out after ${Math.max(1, Math.ceil(
|
|
74
|
+
throw new ProviderRequestError(504, `monday request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
|
|
75
75
|
}
|
|
76
76
|
throw new ProviderRequestError(502, error instanceof Error ? `monday request failed: ${error.message}` : "monday request failed");
|
|
77
77
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
|
|
2
|
+
import { ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const monicaCrmApiBaseUrl = "https://app.monicahq.com/api";
|
|
4
4
|
export const monicaCrmActionHandlers = {
|
|
5
5
|
list_contacts(input, context) {
|
|
@@ -123,7 +123,7 @@ async function readResponsePayload(response) {
|
|
|
123
123
|
function createMonicaCrmError(response, payload, phase) {
|
|
124
124
|
const message = readMonicaCrmErrorMessage(payload) ?? `Monica request failed (${response.status})`;
|
|
125
125
|
if (phase === "validate" && (response.status === 401 || response.status === 403)) {
|
|
126
|
-
return
|
|
126
|
+
return providerInputError(message);
|
|
127
127
|
}
|
|
128
128
|
return new ProviderRequestError(response.status, message);
|
|
129
129
|
}
|
|
@@ -144,13 +144,13 @@ function readMonicaCrmErrorMessage(payload) {
|
|
|
144
144
|
function readEnvelopeData(payload, message) {
|
|
145
145
|
const data = payload.data;
|
|
146
146
|
if (!data || typeof data !== "object" || Array.isArray(data)) {
|
|
147
|
-
throw
|
|
147
|
+
throw providerResponseError(message);
|
|
148
148
|
}
|
|
149
149
|
return data;
|
|
150
150
|
}
|
|
151
151
|
function readNumber(value, message) {
|
|
152
152
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
153
|
-
throw
|
|
153
|
+
throw providerResponseError(message);
|
|
154
154
|
}
|
|
155
155
|
return value;
|
|
156
156
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { optionalInteger, optionalNumber, optionalRecord, optionalString, requiredRecord } from "../../core/cast.js";
|
|
2
2
|
import { jsonObject } from "../../core/request.js";
|
|
3
|
-
import { createProviderTimeout, providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, providerUserAgent, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
|
|
4
4
|
export const moorchehApiBaseUrl = "https://api.moorcheh.ai/v1";
|
|
5
5
|
const namespaceNamePattern = /^[A-Za-z0-9_-]+$/u;
|
|
6
6
|
export const moorchehActionHandlers = {
|
|
@@ -144,7 +144,7 @@ function createMoorchehError(status, payload, phase) {
|
|
|
144
144
|
return new ProviderRequestError(429, message);
|
|
145
145
|
}
|
|
146
146
|
if (phase === "validate" && status >= 400 && status < 500) {
|
|
147
|
-
return
|
|
147
|
+
return providerInputError(message);
|
|
148
148
|
}
|
|
149
149
|
if (status === 401 || status === 403) {
|
|
150
150
|
return new ProviderRequestError(status, message);
|
|
@@ -182,7 +182,7 @@ function readDocuments(value) {
|
|
|
182
182
|
throw new ProviderRequestError(400, "documents must be a non-empty array");
|
|
183
183
|
}
|
|
184
184
|
return value.map((item, index) => {
|
|
185
|
-
const document = requiredRecord(item, `documents[${index}]`,
|
|
185
|
+
const document = requiredRecord(item, `documents[${index}]`, providerInputError);
|
|
186
186
|
return {
|
|
187
187
|
...document,
|
|
188
188
|
id: readRequiredTrimmedString(document.id, `documents[${index}].id`),
|
|
@@ -9,7 +9,6 @@ export interface MoreTreesCredentialCheck {
|
|
|
9
9
|
export declare const moreTreesAccountOrigin = "https://user-management-service.platform.moretrees.eco";
|
|
10
10
|
export declare const moreTreesProjectOrigin = "https://project-management-service.platform.moretrees.eco";
|
|
11
11
|
export declare const moreTreesTransactionOrigin = "https://transaction-management-service.platform.moretrees.eco";
|
|
12
|
-
export declare const moreTreesRequestTimeoutMs = 30000;
|
|
13
12
|
type MoreTreesActionInput = ApiKeyActionRequest & {
|
|
14
13
|
actionName: MoreTreesActionName;
|
|
15
14
|
input: Record<string, unknown>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
3
3
|
export const moreTreesAccountOrigin = "https://user-management-service.platform.moretrees.eco";
|
|
4
4
|
export const moreTreesProjectOrigin = "https://project-management-service.platform.moretrees.eco";
|
|
5
5
|
export const moreTreesTransactionOrigin = "https://transaction-management-service.platform.moretrees.eco";
|
|
6
|
-
export const moreTreesRequestTimeoutMs = 30_000;
|
|
7
6
|
const moreTreesAccountPath = "/user-management-api/external/accounts";
|
|
8
7
|
const moreTreesForestPath = "/user-management-api/external/forest";
|
|
9
8
|
const moreTreesProjectsPath = "/project-management-api/external/projects";
|
|
@@ -15,7 +14,7 @@ export const moreTreesActionHandlers = {
|
|
|
15
14
|
plant_trees: executePlantTrees,
|
|
16
15
|
};
|
|
17
16
|
export async function validateMoreTreesCredential(input, fetcher) {
|
|
18
|
-
const apiKey = requiredString(input.apiKey, "apiKey",
|
|
17
|
+
const apiKey = requiredString(input.apiKey, "apiKey", providerInputError).trim();
|
|
19
18
|
const accountCode = requireCredentialValue(input.accountCode, "accountCode");
|
|
20
19
|
const publicValidationKey = requireCredentialValue(input.publicValidationKey, "publicValidationKey");
|
|
21
20
|
const account = requireObjectResponse(await requestMoreTreesJson({
|
|
@@ -56,7 +55,7 @@ async function executeGetAccount(input, fetcher) {
|
|
|
56
55
|
const accountCode = resolveStoredAccountCode(input.providerMetadata);
|
|
57
56
|
return requestMoreTreesJson({
|
|
58
57
|
url: `${moreTreesAccountOrigin}${moreTreesAccountPath}/${encodeURIComponent(accountCode)}`,
|
|
59
|
-
apiKey: requiredString(input.apiKey, "apiKey",
|
|
58
|
+
apiKey: requiredString(input.apiKey, "apiKey", providerInputError).trim(),
|
|
60
59
|
fetcher,
|
|
61
60
|
phase: "execute",
|
|
62
61
|
});
|
|
@@ -83,7 +82,7 @@ async function executePlantTrees(input, fetcher) {
|
|
|
83
82
|
return requestMoreTreesJson({
|
|
84
83
|
url: `${moreTreesTransactionOrigin}${moreTreesPlantPath}`,
|
|
85
84
|
method: "POST",
|
|
86
|
-
apiKey: requiredString(input.apiKey, "apiKey",
|
|
85
|
+
apiKey: requiredString(input.apiKey, "apiKey", providerInputError).trim(),
|
|
87
86
|
body: compactObject({
|
|
88
87
|
payment_account_code: resolveStoredAccountCode(input.providerMetadata),
|
|
89
88
|
test: input.input.test,
|
|
@@ -155,7 +154,7 @@ async function requestMoreTreesJson(input) {
|
|
|
155
154
|
if (input.body !== undefined) {
|
|
156
155
|
headers.set("content-type", "application/json");
|
|
157
156
|
}
|
|
158
|
-
const timeout = createProviderTimeout(undefined
|
|
157
|
+
const timeout = createProviderTimeout(undefined);
|
|
159
158
|
try {
|
|
160
159
|
const response = await input.fetcher(input.url, {
|
|
161
160
|
method: input.method ?? "GET",
|
|
@@ -174,7 +173,7 @@ async function requestMoreTreesJson(input) {
|
|
|
174
173
|
throw error;
|
|
175
174
|
}
|
|
176
175
|
if (timeout.didTimeout() || isAbortLikeError(error)) {
|
|
177
|
-
throw new ProviderRequestError(504, `More Trees request timed out after ${
|
|
176
|
+
throw new ProviderRequestError(504, `More Trees request timed out after ${defaultProviderRequestTimeoutMs / 1000} seconds`);
|
|
178
177
|
}
|
|
179
178
|
throw new ProviderRequestError(502, error instanceof Error ? `More Trees request failed: ${error.message}` : "More Trees request failed");
|
|
180
179
|
}
|
|
@@ -204,7 +203,7 @@ function createMoreTreesError(response, payload, phase) {
|
|
|
204
203
|
return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
|
|
205
204
|
}
|
|
206
205
|
if ([400, 404, 406, 422].includes(response.status)) {
|
|
207
|
-
return
|
|
206
|
+
return providerInputError(message);
|
|
208
207
|
}
|
|
209
208
|
return new ProviderRequestError(response.status || 500, message);
|
|
210
209
|
}
|
|
@@ -132,11 +132,11 @@ function mapMoxieError(status, payload, validation) {
|
|
|
132
132
|
optionalString(record?.error) ||
|
|
133
133
|
`Moxie request failed with status ${status}`;
|
|
134
134
|
if (validation && [400, 401, 403].includes(status))
|
|
135
|
-
return
|
|
135
|
+
return providerInputError(message);
|
|
136
136
|
if (status === 401 || status === 403)
|
|
137
137
|
return new ProviderRequestError(401, message);
|
|
138
138
|
if ([400, 404, 422].includes(status))
|
|
139
|
-
return
|
|
139
|
+
return providerInputError(message);
|
|
140
140
|
if (status === 429)
|
|
141
141
|
return new ProviderRequestError(429, message);
|
|
142
142
|
return new ProviderRequestError(status || 502, message);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
2
|
import { jsonObject, queryParams } from "../../core/request.js";
|
|
3
|
-
import { createProviderTimeout, providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
4
4
|
export const msg91ApiBaseUrl = "https://control.msg91.com";
|
|
5
5
|
const msg91RequestTimeoutMs = 15_000;
|
|
6
6
|
export const msg91ActionHandlers = {
|
|
@@ -238,7 +238,7 @@ function createMsg91HttpError(response, payload) {
|
|
|
238
238
|
return new ProviderRequestError(401, message);
|
|
239
239
|
}
|
|
240
240
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
241
|
-
return
|
|
241
|
+
return providerInputError(message);
|
|
242
242
|
}
|
|
243
243
|
return new ProviderRequestError(response.status || 500, message);
|
|
244
244
|
}
|
|
@@ -258,9 +258,9 @@ function throwOnMsg91Error(payload, actionName) {
|
|
|
258
258
|
throw new ProviderRequestError(429, message);
|
|
259
259
|
}
|
|
260
260
|
if (isInvalidInputMessage(lowerMessage)) {
|
|
261
|
-
throw
|
|
261
|
+
throw providerInputError(message);
|
|
262
262
|
}
|
|
263
|
-
throw
|
|
263
|
+
throw providerResponseError(message);
|
|
264
264
|
}
|
|
265
265
|
function throwOnMsg91AuthError(payload) {
|
|
266
266
|
const message = extractErrorMessage(payload);
|
|
@@ -167,7 +167,7 @@ function createMxError(response, payload, phase) {
|
|
|
167
167
|
return new ProviderRequestError(429, message);
|
|
168
168
|
}
|
|
169
169
|
if (phase === "validate" || response.status < 500) {
|
|
170
|
-
return
|
|
170
|
+
return providerInputError(message);
|
|
171
171
|
}
|
|
172
172
|
return new ProviderRequestError(response.status || 502, message);
|
|
173
173
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { compactObject, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
2
|
import { assertPublicHttpUrl } from "../../core/request.js";
|
|
3
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
4
|
const needleApiBaseUrl = "https://needle.app";
|
|
5
5
|
const needleSearchBaseUrl = "https://search.needle.app";
|
|
6
6
|
const needleValidationPath = "/api/v1/collections";
|
|
7
|
-
const needleDefaultRequestTimeoutMs = 30_000;
|
|
8
7
|
export const needleActionHandlers = {
|
|
9
8
|
list_collections: (_input, context) => listCollections(context),
|
|
10
9
|
create_collection: (input, context) => createCollection(input, context),
|
|
@@ -154,7 +153,7 @@ async function needleRequest(context, input) {
|
|
|
154
153
|
}
|
|
155
154
|
}
|
|
156
155
|
async function needleRawRequest(context, input) {
|
|
157
|
-
const timeout = createProviderTimeout(context.signal
|
|
156
|
+
const timeout = createProviderTimeout(context.signal);
|
|
158
157
|
try {
|
|
159
158
|
return await context.fetcher(new URL(input.path, input.baseUrl ?? needleApiBaseUrl), {
|
|
160
159
|
method: input.method ?? "GET",
|
|
@@ -169,7 +168,7 @@ async function needleRawRequest(context, input) {
|
|
|
169
168
|
}
|
|
170
169
|
catch (error) {
|
|
171
170
|
if (timeout.didTimeout() && isAbortLikeError(error)) {
|
|
172
|
-
throw new ProviderRequestError(504, `Needle request timed out after ${Math.max(1, Math.ceil(
|
|
171
|
+
throw new ProviderRequestError(504, `Needle request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
|
|
173
172
|
}
|
|
174
173
|
throw new ProviderRequestError(502, error instanceof Error ? `Needle request failed: ${error.message}` : "Needle request failed");
|
|
175
174
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
|
|
3
|
-
import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
|
|
3
|
+
import { ProviderRequestError, providerUserAgent, defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
|
|
4
4
|
import { netlifyConnectorScopes } from "./actions.js";
|
|
5
5
|
export const netlifyApiBaseUrl = "https://api.netlify.com/api/v1";
|
|
6
6
|
const netlifyValidationPath = "/user";
|
|
7
|
-
const sourceFetchTimeoutMs = 30_000;
|
|
8
7
|
const maxSourceBytes = 100 * 1024 * 1024;
|
|
9
8
|
export const netlifyActionHandlers = {
|
|
10
9
|
async get_current_user(_input, context) {
|
|
@@ -439,7 +438,7 @@ function readDeployFilePath(value) {
|
|
|
439
438
|
async function downloadSourceFile(sourceUrl, fieldName, fetcher) {
|
|
440
439
|
const url = validateSourceUrl(sourceUrl, fieldName);
|
|
441
440
|
const controller = new AbortController();
|
|
442
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
441
|
+
const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
|
|
443
442
|
try {
|
|
444
443
|
const response = await fetcher(url, {
|
|
445
444
|
signal: controller.signal,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
|
|
3
|
-
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, } from "../provider-runtime.js";
|
|
4
4
|
const service = "niftyimages";
|
|
5
5
|
const niftyimagesApiBaseUrl = "https://api.niftyimages.com/v1";
|
|
6
6
|
const niftyimagesMaxResponseBytes = 10 * 1024 * 1024;
|
|
@@ -158,7 +158,7 @@ function mapNiftyimagesError(status, payload, phase) {
|
|
|
158
158
|
return new ProviderRequestError(429, message);
|
|
159
159
|
}
|
|
160
160
|
if (phase === "validate" && status >= 400 && status < 500) {
|
|
161
|
-
return
|
|
161
|
+
return providerInputError(message);
|
|
162
162
|
}
|
|
163
163
|
if (phase === "execute" && (status === 401 || status === 403)) {
|
|
164
164
|
return new ProviderRequestError(401, message);
|
|
@@ -145,7 +145,7 @@ function mapNorthbeamError(status, payload, phase) {
|
|
|
145
145
|
return new ProviderRequestError(429, message);
|
|
146
146
|
}
|
|
147
147
|
if (phase === "validate" && status >= 400 && status < 500) {
|
|
148
|
-
return
|
|
148
|
+
return providerInputError(message);
|
|
149
149
|
}
|
|
150
150
|
if (phase === "execute" && (status === 401 || status === 403)) {
|
|
151
151
|
return new ProviderRequestError(status, message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
const service = "nozbe_teams";
|
|
4
4
|
const nozbeTeamsApiBaseUrl = "https://api4.nozbe.com/v1/api";
|
|
5
5
|
const nozbeTeamsValidationPath = "/teams";
|
|
@@ -170,12 +170,12 @@ function buildNozbeError(response, text, phase) {
|
|
|
170
170
|
return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
|
|
171
171
|
}
|
|
172
172
|
if ([400, 404, 409, 422].includes(response.status)) {
|
|
173
|
-
return
|
|
173
|
+
return providerInputError(message);
|
|
174
174
|
}
|
|
175
175
|
if (response.status === 429) {
|
|
176
176
|
return new ProviderRequestError(429, message);
|
|
177
177
|
}
|
|
178
|
-
return
|
|
178
|
+
return providerResponseError(message);
|
|
179
179
|
}
|
|
180
180
|
function readNozbeErrorMessage(status, text) {
|
|
181
181
|
const fallback = `Nozbe request failed with status ${status}`;
|
|
@@ -194,7 +194,7 @@ function resourcePath(resource, id) {
|
|
|
194
194
|
return `/${resource}/${encodeURIComponent(requireResourceId(id))}`;
|
|
195
195
|
}
|
|
196
196
|
function requireResourceId(value) {
|
|
197
|
-
return requiredString(value, "Nozbe resource ID",
|
|
197
|
+
return requiredString(value, "Nozbe resource ID", providerInputError);
|
|
198
198
|
}
|
|
199
199
|
function validateUpdateBody(body, resource) {
|
|
200
200
|
if (Object.keys(body).length === 0) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, providerUserAgent, ProviderRequestError, readProviderTextBody, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, providerUserAgent, ProviderRequestError, readProviderTextBody, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const npmRegistryBaseUrl = "https://registry.npmjs.org";
|
|
4
4
|
export const npmDownloadsBaseUrl = "https://api.npmjs.org";
|
|
5
5
|
export const npmValidationPath = "/-/whoami";
|
|
@@ -259,7 +259,7 @@ function createNpmError(response, payload, phase) {
|
|
|
259
259
|
if (response.status === 429) {
|
|
260
260
|
return new ProviderRequestError(429, message);
|
|
261
261
|
}
|
|
262
|
-
return
|
|
262
|
+
return providerResponseError(message);
|
|
263
263
|
}
|
|
264
264
|
function extractNpmErrorMessage(payload) {
|
|
265
265
|
if (typeof payload === "string") {
|
|
@@ -435,13 +435,13 @@ async function mapWithConcurrency(items, concurrency, worker) {
|
|
|
435
435
|
function requireObject(value, message) {
|
|
436
436
|
const object = optionalRecord(value);
|
|
437
437
|
if (!object) {
|
|
438
|
-
throw
|
|
438
|
+
throw providerResponseError(message);
|
|
439
439
|
}
|
|
440
440
|
return object;
|
|
441
441
|
}
|
|
442
442
|
function requireArray(value, message) {
|
|
443
443
|
if (!Array.isArray(value)) {
|
|
444
|
-
throw
|
|
444
|
+
throw providerResponseError(message);
|
|
445
445
|
}
|
|
446
446
|
return value;
|
|
447
447
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, readProviderTextBody, requiredResponseRecord, } from "../provider-runtime.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, readProviderTextBody, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
|
|
3
3
|
export const nusiiProposalsApiBaseUrl = "https://app.nusii.com/api/v2/";
|
|
4
4
|
const clientWriteFields = [
|
|
5
5
|
"email",
|
|
@@ -302,7 +302,7 @@ function createNusiiError(status, payload, phase) {
|
|
|
302
302
|
return new ProviderRequestError(429, message);
|
|
303
303
|
}
|
|
304
304
|
if (phase === "validate" && (status === 401 || status === 403)) {
|
|
305
|
-
return
|
|
305
|
+
return providerInputError(message);
|
|
306
306
|
}
|
|
307
307
|
if (phase === "execute" && status === 401) {
|
|
308
308
|
return new ProviderRequestError(401, message);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { integer, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
|
|
3
3
|
import { readBoundedResponseBytes } from "../../core/request.js";
|
|
4
|
-
import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderTextBody, requireCustomCredential, } from "../provider-runtime.js";
|
|
4
|
+
import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderTextBody, requireCustomCredential, providerInputError, } from "../provider-runtime.js";
|
|
5
5
|
const service = "ocr_web_service";
|
|
6
6
|
const ocrWebServiceApiBaseUrl = "https://www.ocrwebservice.com/restservices";
|
|
7
7
|
const ocrWebServiceMaxResponseBytes = 10 * 1024 * 1024;
|
|
@@ -138,7 +138,7 @@ async function downloadFileUrl(value, signal) {
|
|
|
138
138
|
return await readBoundedResponseBytes(response, {
|
|
139
139
|
maxBytes: ocrWebServiceMaxInputBytes,
|
|
140
140
|
fieldName: "fileUrl payload",
|
|
141
|
-
createError:
|
|
141
|
+
createError: providerInputError,
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
catch (error) {
|
|
@@ -257,13 +257,13 @@ function mapOcrWebServiceHttpError(status, payload, phase) {
|
|
|
257
257
|
return new ProviderRequestError(429, message);
|
|
258
258
|
}
|
|
259
259
|
if (phase === "validate" && [400, 401, 402].includes(status)) {
|
|
260
|
-
return
|
|
260
|
+
return providerInputError(message);
|
|
261
261
|
}
|
|
262
262
|
if (phase === "execute" && (status === 401 || status === 402)) {
|
|
263
263
|
return new ProviderRequestError(401, message);
|
|
264
264
|
}
|
|
265
265
|
if (phase === "execute" && status === 400) {
|
|
266
|
-
return
|
|
266
|
+
return providerInputError(message);
|
|
267
267
|
}
|
|
268
268
|
return new ProviderRequestError(status >= 500 ? 502 : status || 502, message);
|
|
269
269
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { compactObject, optionalNumber, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
|
|
3
3
|
import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
|
|
4
|
-
import { createProviderFetch, createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, } from "../provider-runtime.js";
|
|
4
|
+
import { createProviderFetch, createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderTextBody, requireApiKeyCredential, providerInputError, } from "../provider-runtime.js";
|
|
5
5
|
const service = "octopus_deploy";
|
|
6
6
|
const validationPath = "/users/me";
|
|
7
7
|
const maxResponseBytes = 10 * 1024 * 1024;
|
|
@@ -262,10 +262,10 @@ function mapHttpError(status, message, phase) {
|
|
|
262
262
|
return new ProviderRequestError(401, message);
|
|
263
263
|
}
|
|
264
264
|
if (status === 401 || status === 403 || (phase === "validate" && status === 404)) {
|
|
265
|
-
return
|
|
265
|
+
return providerInputError(message);
|
|
266
266
|
}
|
|
267
267
|
if (status === 400 || status === 404 || status === 422) {
|
|
268
|
-
return
|
|
268
|
+
return providerInputError(message);
|
|
269
269
|
}
|
|
270
270
|
if (status === 429) {
|
|
271
271
|
return new ProviderRequestError(429, message);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
3
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
3
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
|
|
4
4
|
export const oksignApiBaseUrl = "https://www.oksign.be";
|
|
5
|
-
const oksignDefaultTimeoutMs = 30_000;
|
|
6
5
|
const oksignCreditsPath = "/services/rest/v1/credits/retrieve";
|
|
7
6
|
const oksignActiveDocumentsPath = "/services/rest/v1/documents/active";
|
|
8
7
|
const oksignMetadataV2Path = "/services/rest/v2/metadata/retrieve";
|
|
@@ -137,7 +136,7 @@ async function listUsers(context) {
|
|
|
137
136
|
};
|
|
138
137
|
}
|
|
139
138
|
async function requestOksignJson(input) {
|
|
140
|
-
const timeout = createProviderTimeout(input.signal
|
|
139
|
+
const timeout = createProviderTimeout(input.signal);
|
|
141
140
|
try {
|
|
142
141
|
const response = await input.fetcher(new URL(input.path, oksignApiBaseUrl), {
|
|
143
142
|
method: "GET",
|
|
@@ -158,7 +157,7 @@ async function requestOksignJson(input) {
|
|
|
158
157
|
throw error;
|
|
159
158
|
}
|
|
160
159
|
if (timeout.didTimeout() || isAbortLikeError(error)) {
|
|
161
|
-
throw new ProviderRequestError(504, `OKSign request timed out after ${Math.max(1, Math.ceil(
|
|
160
|
+
throw new ProviderRequestError(504, `OKSign request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
|
|
162
161
|
}
|
|
163
162
|
throw new ProviderRequestError(502, error instanceof Error ? `OKSign request failed: ${error.message}` : "OKSign request failed");
|
|
164
163
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { compactObject, requiredRecord } from "../../core/cast.js";
|
|
3
3
|
import { storeResponseInTransit } from "../../core/request.js";
|
|
4
|
-
import { defineOAuthProviderExecutors, defineProviderProxy, ProviderRequestError, readTransitFileInput, } from "../provider-runtime.js";
|
|
4
|
+
import { defineOAuthProviderExecutors, defineProviderProxy, ProviderRequestError, readTransitFileInput, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
5
5
|
import { oneDriveItemChanged } from "./trigger-on-item-changed.js";
|
|
6
6
|
const graphBaseUrl = "https://graph.microsoft.com/v1.0";
|
|
7
7
|
const graphOrigin = new URL(graphBaseUrl).origin;
|
|
@@ -224,7 +224,7 @@ export async function assertOneDriveResponse(response) {
|
|
|
224
224
|
}
|
|
225
225
|
const { code, message } = await extractOneDriveError(response);
|
|
226
226
|
if (response.status === 400) {
|
|
227
|
-
throw
|
|
227
|
+
throw providerInputError(message);
|
|
228
228
|
}
|
|
229
229
|
if (response.status === 401) {
|
|
230
230
|
throw new ProviderRequestError(401, message);
|
|
@@ -236,10 +236,10 @@ export async function assertOneDriveResponse(response) {
|
|
|
236
236
|
throw new ProviderRequestError(403, message);
|
|
237
237
|
}
|
|
238
238
|
if (response.status === 404) {
|
|
239
|
-
throw
|
|
239
|
+
throw providerInputError(message);
|
|
240
240
|
}
|
|
241
241
|
if (response.status === 409 || response.status === 412) {
|
|
242
|
-
throw
|
|
242
|
+
throw providerInputError(message);
|
|
243
243
|
}
|
|
244
244
|
if (response.status === 429) {
|
|
245
245
|
throw new ProviderRequestError(429, message);
|
|
@@ -774,7 +774,7 @@ function resolveUploadChunkSize(remainingBytes) {
|
|
|
774
774
|
async function buildUploadSessionError(response) {
|
|
775
775
|
const { message } = await extractOneDriveError(response);
|
|
776
776
|
if (response.status === 400 || response.status === 409 || response.status === 412) {
|
|
777
|
-
return
|
|
777
|
+
return providerInputError(message);
|
|
778
778
|
}
|
|
779
779
|
if (response.status === 404) {
|
|
780
780
|
return new ProviderRequestError(404, "one_drive upload session expired");
|
|
@@ -1009,7 +1009,7 @@ function requireString(value, fieldName) {
|
|
|
1009
1009
|
return parsed;
|
|
1010
1010
|
}
|
|
1011
1011
|
function asObject(value) {
|
|
1012
|
-
return requiredRecord(value, "object input",
|
|
1012
|
+
return requiredRecord(value, "object input", providerResponseError);
|
|
1013
1013
|
}
|
|
1014
1014
|
function readOptionalPresentString(input, key) {
|
|
1015
1015
|
if (!(key in input)) {
|
|
@@ -141,7 +141,7 @@ async function readOnePasswordEventsPayload(response) {
|
|
|
141
141
|
function createOnePasswordEventsError(status, payload, phase) {
|
|
142
142
|
const message = extractOnePasswordEventsErrorMessage(payload) ?? `1Password Events request failed with status ${status}`;
|
|
143
143
|
if (phase === "validate" && (status === 401 || status === 403)) {
|
|
144
|
-
return
|
|
144
|
+
return providerInputError(message);
|
|
145
145
|
}
|
|
146
146
|
if (phase === "execute" && (status === 401 || status === 403)) {
|
|
147
147
|
return new ProviderRequestError(status, message);
|