@oomol-lab/open-connector 1.7.0 → 1.9.0
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 +19 -14
- package/assets/open-connector/catalog/apps/7_shifts.json +62 -31
- package/assets/open-connector/catalog/apps/a_leads.json +26 -13
- package/assets/open-connector/catalog/apps/ably_control.json +124 -62
- package/assets/open-connector/catalog/apps/abstract.json +16 -8
- package/assets/open-connector/catalog/apps/abuseipdb.json +28 -14
- package/assets/open-connector/catalog/apps/abyssale.json +76 -38
- package/assets/open-connector/catalog/apps/accredible_certificates.json +228 -114
- package/assets/open-connector/catalog/apps/accuweather.json +2 -1
- package/assets/open-connector/catalog/apps/active_trail.json +106 -53
- package/assets/open-connector/catalog/apps/activecampaign.json +110 -55
- package/assets/open-connector/catalog/apps/acuity_scheduling.json +210 -105
- package/assets/open-connector/catalog/apps/adafruit_io.json +108 -54
- package/assets/open-connector/catalog/apps/addressfinder.json +8 -4
- package/assets/open-connector/catalog/apps/addresszen.json +2 -1
- package/assets/open-connector/catalog/apps/adobe_commerce.json +74 -37
- package/assets/open-connector/catalog/apps/adyen.json +78 -39
- package/assets/open-connector/catalog/apps/adyntel.json +68 -34
- package/assets/open-connector/catalog/apps/aerisweather.json +6 -3
- package/assets/open-connector/catalog/apps/affinda.json +4 -2
- package/assets/open-connector/catalog/apps/affinity.json +124 -62
- package/assets/open-connector/catalog/apps/aftership.json +12 -6
- package/assets/open-connector/catalog/apps/agent_mail.json +8 -4
- package/assets/open-connector/catalog/apps/agentql.json +56 -28
- package/assets/open-connector/catalog/apps/agiled.json +340 -170
- package/assets/open-connector/catalog/apps/agora.json +64 -32
- package/assets/open-connector/catalog/apps/aimfox.json +22 -11
- package/assets/open-connector/catalog/apps/airbrake.json +76 -38
- package/assets/open-connector/catalog/apps/aircall.json +30 -15
- package/assets/open-connector/catalog/apps/airtable.json +138 -2
- package/assets/open-connector/catalog/apps/aisa.json +1088 -43
- package/assets/open-connector/catalog/apps/alchemy.json +22 -11
- package/assets/open-connector/catalog/apps/algo_docs.json +6 -3
- package/assets/open-connector/catalog/apps/aliyun_oss.json +34 -17
- package/assets/open-connector/catalog/apps/aliyun_sls.json +26 -13
- package/assets/open-connector/catalog/apps/aliyun_sts.json +8 -4
- package/assets/open-connector/catalog/apps/alt_text_ai.json +114 -57
- package/assets/open-connector/catalog/apps/altiria.json +112 -56
- package/assets/open-connector/catalog/apps/altoviz.json +76 -38
- package/assets/open-connector/catalog/apps/amara.json +68 -34
- package/assets/open-connector/catalog/apps/amazing_marvin.json +615 -0
- package/assets/open-connector/catalog/apps/ambivo.json +188 -94
- package/assets/open-connector/catalog/apps/amilia.json +8 -4
- package/assets/open-connector/catalog/apps/amplemarket.json +230 -115
- package/assets/open-connector/catalog/apps/anchor_browser.json +8 -4
- package/assets/open-connector/catalog/apps/anrok.json +10 -5
- package/assets/open-connector/catalog/apps/anthropic.json +8 -4
- package/assets/open-connector/catalog/apps/anthropic_admin.json +32 -16
- package/assets/open-connector/catalog/apps/anymail_finder.json +40 -20
- package/assets/open-connector/catalog/apps/api2pdf.json +14 -7
- package/assets/open-connector/catalog/apps/api_route.json +203 -0
- package/assets/open-connector/catalog/apps/api_sports.json +220 -110
- package/assets/open-connector/catalog/apps/api_void.json +10 -5
- package/assets/open-connector/catalog/apps/apiframe.json +26 -13
- package/assets/open-connector/catalog/apps/apipie_ai.json +4 -2
- package/assets/open-connector/catalog/apps/apiverve.json +82 -41
- package/assets/open-connector/catalog/apps/app_store_connect.json +7516 -3758
- package/assets/open-connector/catalog/apps/app_store_server.json +126 -63
- package/assets/open-connector/catalog/apps/appcircle.json +24 -12
- package/assets/open-connector/catalog/apps/appcues.json +4 -2
- package/assets/open-connector/catalog/apps/apple_ads.json +6626 -3313
- package/assets/open-connector/catalog/apps/apple_notary.json +12 -6
- package/assets/open-connector/catalog/apps/appledb.json +4 -2
- package/assets/open-connector/catalog/apps/appstle_subscriptions.json +2 -1
- package/assets/open-connector/catalog/apps/aroflo.json +24 -12
- package/assets/open-connector/catalog/apps/arxiv.json +98 -49
- package/assets/open-connector/catalog/apps/asana.json +1016 -508
- package/assets/open-connector/catalog/apps/ashby.json +12 -6
- package/assets/open-connector/catalog/apps/assemblyai.json +142 -71
- package/assets/open-connector/catalog/apps/assured_platform.json +4 -2
- package/assets/open-connector/catalog/apps/atlas_so.json +250 -125
- package/assets/open-connector/catalog/apps/attio.json +22 -11
- package/assets/open-connector/catalog/apps/autobound.json +30 -15
- package/assets/open-connector/catalog/apps/autom.json +14 -7
- package/assets/open-connector/catalog/apps/autotask.json +10 -5
- package/assets/open-connector/catalog/apps/aviationstack.json +60 -30
- package/assets/open-connector/catalog/apps/avochato.json +36 -18
- package/assets/open-connector/catalog/apps/avoma.json +8 -4
- package/assets/open-connector/catalog/apps/aws_s3.json +40 -20
- package/assets/open-connector/catalog/apps/aws_sts.json +12 -6
- package/assets/open-connector/catalog/apps/ayrshare.json +18 -9
- package/assets/open-connector/catalog/apps/baidu_netdisk.json +84 -42
- package/assets/open-connector/catalog/apps/balldontlie_worldcup.json +38 -19
- package/assets/open-connector/catalog/apps/bamboohr.json +8 -4
- package/assets/open-connector/catalog/apps/bannerbear.json +28 -14
- package/assets/open-connector/catalog/apps/baremetrics.json +20 -10
- package/assets/open-connector/catalog/apps/baserow.json +4 -2
- package/assets/open-connector/catalog/apps/bazhuayu.json +14 -7
- package/assets/open-connector/catalog/apps/beaconchain.json +12 -6
- package/assets/open-connector/catalog/apps/beehiiv.json +62 -31
- package/assets/open-connector/catalog/apps/beeminder.json +126 -63
- package/assets/open-connector/catalog/apps/better_proposals.json +96 -48
- package/assets/open-connector/catalog/apps/better_stack.json +220 -110
- package/assets/open-connector/catalog/apps/bettercontact.json +36 -18
- package/assets/open-connector/catalog/apps/bidsketch.json +6 -3
- package/assets/open-connector/catalog/apps/big_commerce.json +58 -29
- package/assets/open-connector/catalog/apps/bigmailer.json +124 -62
- package/assets/open-connector/catalog/apps/bigml.json +106 -53
- package/assets/open-connector/catalog/apps/bigpicture_io.json +84 -42
- package/assets/open-connector/catalog/apps/biorxiv_medrxiv.json +6 -3
- package/assets/open-connector/catalog/apps/bird.json +6 -3
- package/assets/open-connector/catalog/apps/bitbucket.json +164 -82
- package/assets/open-connector/catalog/apps/bitwarden.json +88 -44
- package/assets/open-connector/catalog/apps/bland_ai.json +122 -61
- package/assets/open-connector/catalog/apps/blaze_meter_functional.json +54 -27
- package/assets/open-connector/catalog/apps/blaze_meter_performance.json +108 -54
- package/assets/open-connector/catalog/apps/blaze_meter_service_virtualization.json +54 -27
- package/assets/open-connector/catalog/apps/bluesky.json +10 -5
- package/assets/open-connector/catalog/apps/boldsign.json +54 -27
- package/assets/open-connector/catalog/apps/bolna.json +8 -4
- package/assets/open-connector/catalog/apps/bot_star.json +4 -2
- package/assets/open-connector/catalog/apps/botpress.json +2 -1
- package/assets/open-connector/catalog/apps/box.json +192 -96
- package/assets/open-connector/catalog/apps/boxhero.json +10 -5
- package/assets/open-connector/catalog/apps/brandfetch.json +12 -6
- package/assets/open-connector/catalog/apps/brave_search.json +32 -16
- package/assets/open-connector/catalog/apps/braze.json +12 -6
- package/assets/open-connector/catalog/apps/breezy_hr.json +20 -10
- package/assets/open-connector/catalog/apps/brex.json +160 -80
- package/assets/open-connector/catalog/apps/bright_data.json +4 -2
- package/assets/open-connector/catalog/apps/browse_ai.json +108 -54
- package/assets/open-connector/catalog/apps/browser_use.json +102 -51
- package/assets/open-connector/catalog/apps/browserstack.json +14 -7
- package/assets/open-connector/catalog/apps/bug_herd.json +4 -2
- package/assets/open-connector/catalog/apps/bugbug.json +42 -21
- package/assets/open-connector/catalog/apps/bugsnag.json +20 -10
- package/assets/open-connector/catalog/apps/builder_io.json +24 -12
- package/assets/open-connector/catalog/apps/buildkite.json +32 -16
- package/assets/open-connector/catalog/apps/businessmap.json +40 -20
- package/assets/open-connector/catalog/apps/buttondown.json +154 -77
- package/assets/open-connector/catalog/apps/buzzsprout.json +222 -111
- package/assets/open-connector/catalog/apps/byteforms.json +14 -7
- package/assets/open-connector/catalog/apps/cal.json +62 -25
- package/assets/open-connector/catalog/apps/calendarific.json +24 -12
- package/assets/open-connector/catalog/apps/calendly.json +88 -44
- package/assets/open-connector/catalog/apps/callingly.json +594 -297
- package/assets/open-connector/catalog/apps/callpage.json +30 -15
- package/assets/open-connector/catalog/apps/callrail.json +156 -78
- package/assets/open-connector/catalog/apps/canny.json +2 -1
- package/assets/open-connector/catalog/apps/canva.json +222 -111
- package/assets/open-connector/catalog/apps/canva_cn.json +222 -111
- package/assets/open-connector/catalog/apps/captainbi.json +54 -27
- package/assets/open-connector/catalog/apps/carbone.json +38 -19
- package/assets/open-connector/catalog/apps/cardly.json +42 -21
- package/assets/open-connector/catalog/apps/castingwords.json +2 -1
- package/assets/open-connector/catalog/apps/census_bureau.json +54 -27
- package/assets/open-connector/catalog/apps/central_station_crm.json +418 -209
- package/assets/open-connector/catalog/apps/certifier.json +20 -10
- package/assets/open-connector/catalog/apps/certn.json +62 -31
- package/assets/open-connector/catalog/apps/chargebee.json +8 -4
- package/assets/open-connector/catalog/apps/chargeblast.json +66 -33
- package/assets/open-connector/catalog/apps/chargify.json +80 -40
- package/assets/open-connector/catalog/apps/chartmogul.json +114 -57
- package/assets/open-connector/catalog/apps/chaserhq.json +18 -9
- package/assets/open-connector/catalog/apps/chat_api_for_whatsapp.json +10 -5
- package/assets/open-connector/catalog/apps/chatarmin.json +10 -5
- package/assets/open-connector/catalog/apps/cheaperinference.json +346 -0
- package/assets/open-connector/catalog/apps/check.json +4 -2
- package/assets/open-connector/catalog/apps/chengxin.json +880 -440
- package/assets/open-connector/catalog/apps/chorus.json +2 -1
- package/assets/open-connector/catalog/apps/cin7_core.json +8 -4
- package/assets/open-connector/catalog/apps/circle.json +176 -88
- package/assets/open-connector/catalog/apps/circleci.json +14 -7
- package/assets/open-connector/catalog/apps/cisco_meraki.json +10 -5
- package/assets/open-connector/catalog/apps/claid_ai.json +88 -44
- package/assets/open-connector/catalog/apps/clari_copilot.json +4 -2
- package/assets/open-connector/catalog/apps/classmarker.json +320 -160
- package/assets/open-connector/catalog/apps/clay.json +1204 -0
- package/assets/open-connector/catalog/apps/clearout.json +18 -9
- package/assets/open-connector/catalog/apps/clerk.json +540 -270
- package/assets/open-connector/catalog/apps/clickhelp.json +88 -44
- package/assets/open-connector/catalog/apps/clickhouse.json +58 -29
- package/assets/open-connector/catalog/apps/clickmeeting.json +254 -127
- package/assets/open-connector/catalog/apps/clickup.json +738 -369
- package/assets/open-connector/catalog/apps/clinicaltrials_gov.json +134 -67
- package/assets/open-connector/catalog/apps/clockify.json +12 -6
- package/assets/open-connector/catalog/apps/cloudconvert.json +8 -4
- package/assets/open-connector/catalog/apps/cloudflare_dns.json +16 -8
- package/assets/open-connector/catalog/apps/cloudflare_email_routing.json +2 -1
- package/assets/open-connector/catalog/apps/cloudflare_r2.json +18 -9
- package/assets/open-connector/catalog/apps/cloudflare_worker.json +46 -23
- package/assets/open-connector/catalog/apps/cloudinary.json +2 -1
- package/assets/open-connector/catalog/apps/cockroach_labs.json +10 -5
- package/assets/open-connector/catalog/apps/coda.json +22 -11
- package/assets/open-connector/catalog/apps/codacy.json +8 -4
- package/assets/open-connector/catalog/apps/codegen.json +76 -38
- package/assets/open-connector/catalog/apps/codemagic.json +50 -25
- package/assets/open-connector/catalog/apps/coderabbit.json +50 -25
- package/assets/open-connector/catalog/apps/coderpad.json +26 -13
- package/assets/open-connector/catalog/apps/coingecko.json +132 -66
- package/assets/open-connector/catalog/apps/coinmarketcal.json +10 -5
- package/assets/open-connector/catalog/apps/coinmarketcap.json +118 -59
- package/assets/open-connector/catalog/apps/college_football_data.json +6 -3
- package/assets/open-connector/catalog/apps/commonninja.json +1060 -0
- package/assets/open-connector/catalog/apps/commpeak.json +142 -71
- package/assets/open-connector/catalog/apps/companycam.json +464 -232
- package/assets/open-connector/catalog/apps/companyenrich.json +2 -1
- package/assets/open-connector/catalog/apps/conductor.json +34 -17
- package/assets/open-connector/catalog/apps/configcat.json +36 -18
- package/assets/open-connector/catalog/apps/confluence.json +24 -12
- package/assets/open-connector/catalog/apps/confluent.json +36 -18
- package/assets/open-connector/catalog/apps/consensus.json +16 -8
- package/assets/open-connector/catalog/apps/contentful_graphql.json +2 -1
- package/assets/open-connector/catalog/apps/contentstack_content_delivery.json +6 -3
- package/assets/open-connector/catalog/apps/contentstack_content_management.json +4 -2
- package/assets/open-connector/catalog/apps/convertapi.json +2 -1
- package/assets/open-connector/catalog/apps/convex.json +44 -22
- package/assets/open-connector/catalog/apps/coolify.json +8 -4
- package/assets/open-connector/catalog/apps/coupang.json +8 -4
- package/assets/open-connector/catalog/apps/courier.json +20 -10
- package/assets/open-connector/catalog/apps/craftmypdf.json +6 -3
- package/assets/open-connector/catalog/apps/cratedb_cloud.json +98 -49
- package/assets/open-connector/catalog/apps/credit_repair_cloud.json +48 -24
- package/assets/open-connector/catalog/apps/crisp.json +14 -7
- package/assets/open-connector/catalog/apps/cronlytic.json +804 -0
- package/assets/open-connector/catalog/apps/crossref.json +214 -107
- package/assets/open-connector/catalog/apps/crowdin.json +48 -24
- package/assets/open-connector/catalog/apps/crustdata.json +4 -2
- package/assets/open-connector/catalog/apps/cursor.json +10 -5
- package/assets/open-connector/catalog/apps/customgpt.json +56 -28
- package/assets/open-connector/catalog/apps/daffy.json +24 -12
- package/assets/open-connector/catalog/apps/dart.json +230 -115
- package/assets/open-connector/catalog/apps/databar_ai.json +4 -2
- package/assets/open-connector/catalog/apps/datadog.json +70 -35
- package/assets/open-connector/catalog/apps/dataforseo.json +160 -80
- package/assets/open-connector/catalog/apps/datalust.json +98 -49
- package/assets/open-connector/catalog/apps/daytona.json +2 -1
- package/assets/open-connector/catalog/apps/dealmachine.json +2 -1
- package/assets/open-connector/catalog/apps/deck_co.json +18 -9
- package/assets/open-connector/catalog/apps/deepgram.json +208 -104
- package/assets/open-connector/catalog/apps/deepseek.json +2 -1
- package/assets/open-connector/catalog/apps/delighted.json +26 -13
- package/assets/open-connector/catalog/apps/demio.json +10 -5
- package/assets/open-connector/catalog/apps/demodesk.json +74 -37
- package/assets/open-connector/catalog/apps/descript.json +4 -2
- package/assets/open-connector/catalog/apps/desktime.json +20 -10
- package/assets/open-connector/catalog/apps/detect_language.json +2 -1
- package/assets/open-connector/catalog/apps/detrack.json +130 -65
- package/assets/open-connector/catalog/apps/deutschlandgpt.json +2 -1
- package/assets/open-connector/catalog/apps/devin.json +48 -24
- package/assets/open-connector/catalog/apps/devto.json +16 -8
- package/assets/open-connector/catalog/apps/dialpad_wfm.json +6 -3
- package/assets/open-connector/catalog/apps/diffbot.json +4 -2
- package/assets/open-connector/catalog/apps/diffy.json +2 -1
- package/assets/open-connector/catalog/apps/digistore24.json +208 -104
- package/assets/open-connector/catalog/apps/discolike.json +12 -6
- package/assets/open-connector/catalog/apps/discord.json +8 -4
- package/assets/open-connector/catalog/apps/discordbot.json +100 -51
- package/assets/open-connector/catalog/apps/discourse.json +266 -133
- package/assets/open-connector/catalog/apps/dns_filter.json +60 -30
- package/assets/open-connector/catalog/apps/docker_hub.json +314 -157
- package/assets/open-connector/catalog/apps/docmosis.json +120 -60
- package/assets/open-connector/catalog/apps/docparser.json +54 -27
- package/assets/open-connector/catalog/apps/docraptor.json +4 -2
- package/assets/open-connector/catalog/apps/docsautomator.json +118 -59
- package/assets/open-connector/catalog/apps/docsbot_ai.json +86 -43
- package/assets/open-connector/catalog/apps/docsumo.json +124 -62
- package/assets/open-connector/catalog/apps/documenso.json +32 -16
- package/assets/open-connector/catalog/apps/document360.json +282 -141
- package/assets/open-connector/catalog/apps/docuseal.json +48 -24
- package/assets/open-connector/catalog/apps/doppler_marketing_automation.json +110 -55
- package/assets/open-connector/catalog/apps/dovetail.json +4 -2
- package/assets/open-connector/catalog/apps/drata.json +22 -11
- package/assets/open-connector/catalog/apps/drimify.json +160 -80
- package/assets/open-connector/catalog/apps/dropbox.json +540 -270
- package/assets/open-connector/catalog/apps/dropbox_sign.json +96 -48
- package/assets/open-connector/catalog/apps/dropcontact.json +8 -4
- package/assets/open-connector/catalog/apps/dub.json +202 -101
- package/assets/open-connector/catalog/apps/dynalist.json +880 -0
- package/assets/open-connector/catalog/apps/dynapictures.json +12 -6
- package/assets/open-connector/catalog/apps/dynatrace.json +34 -17
- package/assets/open-connector/catalog/apps/e2b.json +20 -10
- package/assets/open-connector/catalog/apps/eagle_doc.json +64 -32
- package/assets/open-connector/catalog/apps/easy_peasy_ai.json +361 -0
- package/assets/open-connector/catalog/apps/echotik.json +32 -16
- package/assets/open-connector/catalog/apps/edenai.json +8 -4
- package/assets/open-connector/catalog/apps/edgeone_makers.json +935 -0
- package/assets/open-connector/catalog/apps/elasticemail.json +40 -20
- package/assets/open-connector/catalog/apps/elasticsearch.json +164 -82
- package/assets/open-connector/catalog/apps/elevenlabs.json +24 -12
- package/assets/open-connector/catalog/apps/elevio.json +12 -6
- package/assets/open-connector/catalog/apps/elorus.json +12 -6
- package/assets/open-connector/catalog/apps/emaillistverify.json +12 -6
- package/assets/open-connector/catalog/apps/emailoctopus.json +12 -6
- package/assets/open-connector/catalog/apps/embase.json +14 -7
- package/assets/open-connector/catalog/apps/encodian.json +30 -15
- package/assets/open-connector/catalog/apps/energy_performance_certificates.json +6 -3
- package/assets/open-connector/catalog/apps/enigma.json +2 -1
- package/assets/open-connector/catalog/apps/enormail.json +411 -0
- package/assets/open-connector/catalog/apps/envoy.json +44 -22
- package/assets/open-connector/catalog/apps/eodhd_apis.json +142 -71
- package/assets/open-connector/catalog/apps/eraser.json +10 -5
- package/assets/open-connector/catalog/apps/esa.json +44 -22
- package/assets/open-connector/catalog/apps/esignatures_io.json +86 -43
- package/assets/open-connector/catalog/apps/espocrm.json +12 -6
- package/assets/open-connector/catalog/apps/europe_pmc.json +344 -172
- package/assets/open-connector/catalog/apps/eventzilla.json +154 -77
- package/assets/open-connector/catalog/apps/eversign.json +126 -63
- package/assets/open-connector/catalog/apps/exa.json +18 -9
- package/assets/open-connector/catalog/apps/excel.json +12 -6
- package/assets/open-connector/catalog/apps/exhibitday.json +6 -3
- package/assets/open-connector/catalog/apps/explorium.json +498 -0
- package/assets/open-connector/catalog/apps/expofp.json +2 -1
- package/assets/open-connector/catalog/apps/fairing.json +22 -11
- package/assets/open-connector/catalog/apps/faktoora.json +100 -50
- package/assets/open-connector/catalog/apps/fal_ai.json +14 -7
- package/assets/open-connector/catalog/apps/favro.json +12 -6
- package/assets/open-connector/catalog/apps/featurebase.json +10 -5
- package/assets/open-connector/catalog/apps/feedier.json +40 -20
- package/assets/open-connector/catalog/apps/feishu.json +398 -226
- package/assets/open-connector/catalog/apps/feishu_app_bot.json +456 -73
- package/assets/open-connector/catalog/apps/fellow.json +48 -24
- package/assets/open-connector/catalog/apps/felt.json +2 -1
- package/assets/open-connector/catalog/apps/fengshui.json +2424 -0
- package/assets/open-connector/catalog/apps/fern.json +4 -2
- package/assets/open-connector/catalog/apps/ffhub.json +36 -18
- package/assets/open-connector/catalog/apps/fiber_ai.json +6 -3
- package/assets/open-connector/catalog/apps/fidel_api.json +258 -129
- package/assets/open-connector/catalog/apps/figma.json +4 -2
- package/assets/open-connector/catalog/apps/fillout.json +2 -1
- package/assets/open-connector/catalog/apps/findymail.json +2 -1
- package/assets/open-connector/catalog/apps/finlight.json +551 -0
- package/assets/open-connector/catalog/apps/firecrawl.json +18 -4
- package/assets/open-connector/catalog/apps/fireflies.json +2 -1
- package/assets/open-connector/catalog/apps/firehydrant.json +276 -138
- package/assets/open-connector/catalog/apps/firstbase.json +8 -4
- package/assets/open-connector/catalog/apps/fivetran.json +6 -3
- package/assets/open-connector/catalog/apps/float.json +108 -54
- package/assets/open-connector/catalog/apps/flomo.json +58 -29
- package/assets/open-connector/catalog/apps/flotiq.json +379 -0
- package/assets/open-connector/catalog/apps/flowiseai.json +20 -10
- package/assets/open-connector/catalog/apps/fluxguard.json +42 -21
- package/assets/open-connector/catalog/apps/folk.json +144 -72
- package/assets/open-connector/catalog/apps/fomo.json +138 -69
- package/assets/open-connector/catalog/apps/forem.json +190 -95
- package/assets/open-connector/catalog/apps/formaloo.json +8 -4
- package/assets/open-connector/catalog/apps/formbricks.json +44 -22
- package/assets/open-connector/catalog/apps/formcarry.json +4 -2
- package/assets/open-connector/catalog/apps/formspree.json +16 -8
- package/assets/open-connector/catalog/apps/formstack.json +52 -26
- package/assets/open-connector/catalog/apps/framejet.json +2 -1
- package/assets/open-connector/catalog/apps/fraudlabspro.json +16 -8
- package/assets/open-connector/catalog/apps/freeastroapi.json +2986 -0
- package/assets/open-connector/catalog/apps/freepik.json +4 -2
- package/assets/open-connector/catalog/apps/freshdesk.json +2 -1
- package/assets/open-connector/catalog/apps/freshsales.json +2 -1
- package/assets/open-connector/catalog/apps/freshservice.json +6 -3
- package/assets/open-connector/catalog/apps/freshstatus.json +14 -7
- package/assets/open-connector/catalog/apps/freshteam.json +56 -28
- package/assets/open-connector/catalog/apps/front.json +22 -11
- package/assets/open-connector/catalog/apps/full_contact.json +100 -50
- package/assets/open-connector/catalog/apps/fullenrich.json +4 -2
- package/assets/open-connector/catalog/apps/fundzwatch.json +2 -1
- package/assets/open-connector/catalog/apps/fusion-api.json +8 -8
- package/assets/open-connector/catalog/apps/futunn.json +36 -18
- package/assets/open-connector/catalog/apps/fuxin.json +76 -38
- package/assets/open-connector/catalog/apps/fxmacrodata.json +672 -0
- package/assets/open-connector/catalog/apps/gagelist.json +114 -57
- package/assets/open-connector/catalog/apps/gainsight_nxt.json +14 -7
- package/assets/open-connector/catalog/apps/gamma.json +52 -26
- package/assets/open-connector/catalog/apps/gangtise.json +120 -60
- package/assets/open-connector/catalog/apps/gatherup.json +6 -3
- package/assets/open-connector/catalog/apps/geckoboard.json +2 -1
- package/assets/open-connector/catalog/apps/gem.json +24 -12
- package/assets/open-connector/catalog/apps/gender_api.json +8 -4
- package/assets/open-connector/catalog/apps/genderize.json +4 -2
- package/assets/open-connector/catalog/apps/generic_imap.json +74 -37
- package/assets/open-connector/catalog/apps/geoapify.json +2 -1
- package/assets/open-connector/catalog/apps/getnote.json +112 -56
- package/assets/open-connector/catalog/apps/getprospect.json +40 -20
- package/assets/open-connector/catalog/apps/getresponse.json +176 -88
- package/assets/open-connector/catalog/apps/getyoutubetranscript.json +415 -0
- package/assets/open-connector/catalog/apps/ghost.json +18 -9
- package/assets/open-connector/catalog/apps/gift_up.json +438 -219
- package/assets/open-connector/catalog/apps/giphy.json +96 -48
- package/assets/open-connector/catalog/apps/gist.json +52 -26
- package/assets/open-connector/catalog/apps/gitea.json +364 -182
- package/assets/open-connector/catalog/apps/gitee.json +30 -15
- package/assets/open-connector/catalog/apps/github.json +277 -1
- package/assets/open-connector/catalog/apps/gitlab.json +283 -79
- package/assets/open-connector/catalog/apps/gladia.json +4 -2
- package/assets/open-connector/catalog/apps/gleap.json +4 -2
- package/assets/open-connector/catalog/apps/glyphic.json +88 -44
- package/assets/open-connector/catalog/apps/gmail.json +1989 -196
- package/assets/open-connector/catalog/apps/goody.json +4 -2
- package/assets/open-connector/catalog/apps/google_analytics.json +552 -276
- package/assets/open-connector/catalog/apps/google_bigquery.json +10 -5
- package/assets/open-connector/catalog/apps/google_search_console.json +46 -23
- package/assets/open-connector/catalog/apps/googleads.json +20 -18
- package/assets/open-connector/catalog/apps/googlecalendar.json +212 -0
- package/assets/open-connector/catalog/apps/googlechat.json +36 -18
- package/assets/open-connector/catalog/apps/googledocs.json +45 -22
- package/assets/open-connector/catalog/apps/googledrive.json +480 -0
- package/assets/open-connector/catalog/apps/googleforms.json +2 -1
- package/assets/open-connector/catalog/apps/googlemeet.json +14 -7
- package/assets/open-connector/catalog/apps/googlephotos.json +120 -60
- package/assets/open-connector/catalog/apps/googlesheets.json +195 -25
- package/assets/open-connector/catalog/apps/googleslides.json +1 -0
- package/assets/open-connector/catalog/apps/googletasks.json +240 -120
- package/assets/open-connector/catalog/apps/govee.json +2 -1
- package/assets/open-connector/catalog/apps/gptzero.json +42 -21
- package/assets/open-connector/catalog/apps/grafana.json +154 -77
- package/assets/open-connector/catalog/apps/grafana_cloud.json +50 -25
- package/assets/open-connector/catalog/apps/granola.json +42 -21
- package/assets/open-connector/catalog/apps/graphhopper.json +6 -3
- package/assets/open-connector/catalog/apps/greenhouse.json +54 -27
- package/assets/open-connector/catalog/apps/greip.json +405 -0
- package/assets/open-connector/catalog/apps/greynoise.json +118 -0
- package/assets/open-connector/catalog/apps/griptape.json +8 -4
- package/assets/open-connector/catalog/apps/grist.json +24 -12
- package/assets/open-connector/catalog/apps/groqcloud.json +4 -2
- package/assets/open-connector/catalog/apps/growsurf.json +943 -0
- package/assets/open-connector/catalog/apps/gtmetrix.json +12 -6
- package/assets/open-connector/catalog/apps/gumloop.json +2 -1
- package/assets/open-connector/catalog/apps/gumroad.json +8 -4
- package/assets/open-connector/catalog/apps/habitica.json +156 -78
- package/assets/open-connector/catalog/apps/hackernews.json +6 -3
- package/assets/open-connector/catalog/apps/hackerrank_work.json +12 -6
- package/assets/open-connector/catalog/apps/hamsa.json +4 -2
- package/assets/open-connector/catalog/apps/handelsregister_ai.json +4 -2
- package/assets/open-connector/catalog/apps/happy_scribe.json +58 -29
- package/assets/open-connector/catalog/apps/harmonic_ai.json +4 -2
- package/assets/open-connector/catalog/apps/harvest.json +178 -89
- package/assets/open-connector/catalog/apps/hashnode.json +160 -80
- package/assets/open-connector/catalog/apps/haveibeenpwned.json +14 -7
- package/assets/open-connector/catalog/apps/headout.json +190 -95
- package/assets/open-connector/catalog/apps/healthchecks_io.json +2 -1
- package/assets/open-connector/catalog/apps/heartbeat.json +12 -6
- package/assets/open-connector/catalog/apps/helloleads.json +20 -10
- package/assets/open-connector/catalog/apps/helpdesk.json +18 -9
- package/assets/open-connector/catalog/apps/helpscout.json +36 -18
- package/assets/open-connector/catalog/apps/helpscout_docs.json +30 -15
- package/assets/open-connector/catalog/apps/hex.json +18 -9
- package/assets/open-connector/catalog/apps/heygen.json +30 -15
- package/assets/open-connector/catalog/apps/heyreach.json +8 -4
- package/assets/open-connector/catalog/apps/heyy.json +30 -15
- package/assets/open-connector/catalog/apps/heyzine.json +42 -21
- package/assets/open-connector/catalog/apps/higgsfield_ai.json +24 -12
- package/assets/open-connector/catalog/apps/highergov.json +32 -16
- package/assets/open-connector/catalog/apps/hithink_finance.json +92 -46
- package/assets/open-connector/catalog/apps/holded.json +70 -35
- package/assets/open-connector/catalog/apps/home_assistant.json +44 -22
- package/assets/open-connector/catalog/apps/homebox.json +4 -2
- package/assets/open-connector/catalog/apps/honeycomb.json +76 -38
- package/assets/open-connector/catalog/apps/honeyhive.json +4 -2
- package/assets/open-connector/catalog/apps/hookdeck.json +208 -104
- package/assets/open-connector/catalog/apps/hotjar.json +22 -11
- package/assets/open-connector/catalog/apps/hotspotsystem.json +222 -111
- package/assets/open-connector/catalog/apps/httpsms.json +6 -3
- package/assets/open-connector/catalog/apps/hub_planner.json +18 -9
- package/assets/open-connector/catalog/apps/hubspot.json +8 -4
- package/assets/open-connector/catalog/apps/huggingface.json +4 -2
- package/assets/open-connector/catalog/apps/humanitix.json +2 -1
- package/assets/open-connector/catalog/apps/huodingdong_mcp.json +140 -0
- package/assets/open-connector/catalog/apps/hybrid_analysis.json +4 -2
- package/assets/open-connector/catalog/apps/hyperbrowser.json +6 -3
- package/assets/open-connector/catalog/apps/icypeas.json +30 -15
- package/assets/open-connector/catalog/apps/ima.json +144 -72
- package/assets/open-connector/catalog/apps/imgbb.json +4 -2
- package/assets/open-connector/catalog/apps/imgix.json +18 -9
- package/assets/open-connector/catalog/apps/incident_io.json +78 -39
- package/assets/open-connector/catalog/apps/indeed.json +4 -2
- package/assets/open-connector/catalog/apps/indexed.json +1152 -0
- package/assets/open-connector/catalog/apps/indiegogo.json +4 -2
- package/assets/open-connector/catalog/apps/influxdb_cloud.json +2 -1
- package/assets/open-connector/catalog/apps/insites.json +4 -2
- package/assets/open-connector/catalog/apps/instabot.json +28 -14
- package/assets/open-connector/catalog/apps/instantly_ai.json +96 -48
- package/assets/open-connector/catalog/apps/instatus.json +92 -46
- package/assets/open-connector/catalog/apps/intercom.json +92 -46
- package/assets/open-connector/catalog/apps/interzoid.json +70 -35
- package/assets/open-connector/catalog/apps/intrinio.json +4 -2
- package/assets/open-connector/catalog/apps/invoice_ninja.json +134 -67
- package/assets/open-connector/catalog/apps/ipgeolocation_io.json +108 -54
- package/assets/open-connector/catalog/apps/ipqualityscore.json +78 -39
- package/assets/open-connector/catalog/apps/issue_badge.json +468 -0
- package/assets/open-connector/catalog/apps/ixspy.json +116 -58
- package/assets/open-connector/catalog/apps/jamie.json +38 -19
- package/assets/open-connector/catalog/apps/jibble.json +12 -6
- package/assets/open-connector/catalog/apps/jigsawstack.json +40 -20
- package/assets/open-connector/catalog/apps/jiminny.json +6 -3
- package/assets/open-connector/catalog/apps/jin10.json +22 -11
- package/assets/open-connector/catalog/apps/jira.json +6 -3
- package/assets/open-connector/catalog/apps/jumpcloud.json +4 -2
- package/assets/open-connector/catalog/apps/jumpserver.json +24 -12
- package/assets/open-connector/catalog/apps/junglescout.json +124 -62
- package/assets/open-connector/catalog/apps/juniper_mist.json +54 -27
- package/assets/open-connector/catalog/apps/justoneapi.json +22966 -0
- package/assets/open-connector/catalog/apps/kadoa.json +4 -2
- package/assets/open-connector/catalog/apps/kagi.json +120 -0
- package/assets/open-connector/catalog/apps/kandji.json +42 -21
- package/assets/open-connector/catalog/apps/karakeep.json +626 -313
- package/assets/open-connector/catalog/apps/keepa.json +354 -177
- package/assets/open-connector/catalog/apps/kenjo.json +669 -0
- package/assets/open-connector/catalog/apps/kernel.json +42 -21
- package/assets/open-connector/catalog/apps/keyword.json +10 -5
- package/assets/open-connector/catalog/apps/keyzy.json +352 -0
- package/assets/open-connector/catalog/apps/kickofflabs.json +171 -0
- package/assets/open-connector/catalog/apps/kintone.json +54 -27
- package/assets/open-connector/catalog/apps/kit.json +392 -196
- package/assets/open-connector/catalog/apps/klangio.json +2 -1
- package/assets/open-connector/catalog/apps/klaviyo.json +18 -9
- package/assets/open-connector/catalog/apps/klazify.json +300 -150
- package/assets/open-connector/catalog/apps/knack.json +8 -4
- package/assets/open-connector/catalog/apps/knock.json +30 -15
- package/assets/open-connector/catalog/apps/knowbe4.json +78 -39
- package/assets/open-connector/catalog/apps/kobotoolbox.json +30 -15
- package/assets/open-connector/catalog/apps/komari.json +6 -3
- package/assets/open-connector/catalog/apps/kommo.json +304 -152
- package/assets/open-connector/catalog/apps/kontent_ai.json +62 -31
- package/assets/open-connector/catalog/apps/krispcall.json +138 -69
- package/assets/open-connector/catalog/apps/kuaidi100.json +10 -5
- package/assets/open-connector/catalog/apps/kuaimai.json +24 -12
- package/assets/open-connector/catalog/apps/kustomer.json +112 -56
- package/assets/open-connector/catalog/apps/la_growth_machine.json +2 -1
- package/assets/open-connector/catalog/apps/label_studio.json +30 -15
- package/assets/open-connector/catalog/apps/landbot.json +2 -1
- package/assets/open-connector/catalog/apps/langsmith.json +126 -63
- package/assets/open-connector/catalog/apps/laravel_cloud.json +172 -86
- package/assets/open-connector/catalog/apps/latchshot.json +6 -3
- package/assets/open-connector/catalog/apps/lattice.json +8 -4
- package/assets/open-connector/catalog/apps/launch_darkly.json +124 -62
- package/assets/open-connector/catalog/apps/leadiq.json +26 -13
- package/assets/open-connector/catalog/apps/leadmagic.json +104 -52
- package/assets/open-connector/catalog/apps/leexi.json +216 -108
- package/assets/open-connector/catalog/apps/leiga.json +58 -29
- package/assets/open-connector/catalog/apps/leonardo_ai.json +12 -6
- package/assets/open-connector/catalog/apps/lessonspace.json +24 -12
- package/assets/open-connector/catalog/apps/lever.json +6 -3
- package/assets/open-connector/catalog/apps/lexoffice.json +8 -4
- package/assets/open-connector/catalog/apps/lifx.json +8 -4
- package/assets/open-connector/catalog/apps/lightfield.json +48 -24
- package/assets/open-connector/catalog/apps/linear.json +154 -19
- package/assets/open-connector/catalog/apps/linear_mcp.json +6 -3
- package/assets/open-connector/catalog/apps/linguapop.json +4 -2
- package/assets/open-connector/catalog/apps/lingvanex_translation_api.json +10 -5
- package/assets/open-connector/catalog/apps/linkfox.json +458 -229
- package/assets/open-connector/catalog/apps/linkly.json +260 -130
- package/assets/open-connector/catalog/apps/linux_do.json +332 -166
- package/assets/open-connector/catalog/apps/listennotes.json +24 -12
- package/assets/open-connector/catalog/apps/litellm.json +824 -0
- package/assets/open-connector/catalog/apps/liveagent.json +196 -98
- package/assets/open-connector/catalog/apps/livesession.json +12 -6
- package/assets/open-connector/catalog/apps/lodgify.json +36 -18
- package/assets/open-connector/catalog/apps/lokalise.json +6 -3
- package/assets/open-connector/catalog/apps/loomio.json +58 -29
- package/assets/open-connector/catalog/apps/loop_returns.json +112 -56
- package/assets/open-connector/catalog/apps/loops.json +8 -4
- package/assets/open-connector/catalog/apps/loyverse.json +10 -5
- package/assets/open-connector/catalog/apps/luckin_coffee.json +40 -20
- package/assets/open-connector/catalog/apps/luma.json +40 -20
- package/assets/open-connector/catalog/apps/lumos.json +32 -16
- package/assets/open-connector/catalog/apps/magileads.json +10 -5
- package/assets/open-connector/catalog/apps/mailbluster.json +6 -3
- package/assets/open-connector/catalog/apps/mailbox_validator.json +22 -11
- package/assets/open-connector/catalog/apps/mailboxlayer.json +2 -1
- package/assets/open-connector/catalog/apps/mailcheck.json +20 -10
- package/assets/open-connector/catalog/apps/mailcoach.json +140 -70
- package/assets/open-connector/catalog/apps/mailgun.json +20 -10
- package/assets/open-connector/catalog/apps/mailjet.json +40 -20
- package/assets/open-connector/catalog/apps/mailosaur.json +62 -31
- package/assets/open-connector/catalog/apps/mails_so.json +28 -14
- package/assets/open-connector/catalog/apps/mailsoftly.json +116 -58
- package/assets/open-connector/catalog/apps/maintainx.json +116 -58
- package/assets/open-connector/catalog/apps/manatal.json +16 -8
- package/assets/open-connector/catalog/apps/manus.json +4 -2
- package/assets/open-connector/catalog/apps/mapbox.json +4 -2
- package/assets/open-connector/catalog/apps/maple_billing.json +108 -54
- package/assets/open-connector/catalog/apps/marketstack.json +146 -73
- package/assets/open-connector/catalog/apps/mautic.json +12 -6
- package/assets/open-connector/catalog/apps/mcdonalds_cn.json +2 -1
- package/assets/open-connector/catalog/apps/mediastack.json +34 -17
- package/assets/open-connector/catalog/apps/meet_geek.json +6 -3
- package/assets/open-connector/catalog/apps/mem.json +66 -33
- package/assets/open-connector/catalog/apps/mem0.json +68 -18
- package/assets/open-connector/catalog/apps/memberstack.json +42 -21
- package/assets/open-connector/catalog/apps/membervault.json +8 -4
- package/assets/open-connector/catalog/apps/memento_database.json +810 -0
- package/assets/open-connector/catalog/apps/memos.json +10 -5
- package/assets/open-connector/catalog/apps/mendeley.json +16 -8
- package/assets/open-connector/catalog/apps/meta.json +74 -37
- package/assets/open-connector/catalog/apps/metabase.json +44 -22
- package/assets/open-connector/catalog/apps/metaso.json +44 -22
- package/assets/open-connector/catalog/apps/metatraderapi.json +16 -8
- package/assets/open-connector/catalog/apps/metronome.json +56 -28
- package/assets/open-connector/catalog/apps/microsoft_teams.json +96 -48
- package/assets/open-connector/catalog/apps/mindbody.json +22 -11
- package/assets/open-connector/catalog/apps/minerstat.json +28 -14
- package/assets/open-connector/catalog/apps/mingdao.json +18 -9
- package/assets/open-connector/catalog/apps/minimax.json +8 -4
- package/assets/open-connector/catalog/apps/miro.json +14 -7
- package/assets/open-connector/catalog/apps/missive.json +28 -14
- package/assets/open-connector/catalog/apps/mixmax.json +4 -2
- package/assets/open-connector/catalog/apps/mixpanel.json +8 -4
- package/assets/open-connector/catalog/apps/mktindex.json +34 -17
- package/assets/open-connector/catalog/apps/mobile_text_alerts.json +8 -4
- package/assets/open-connector/catalog/apps/moco.json +120 -60
- package/assets/open-connector/catalog/apps/moesif.json +68 -34
- package/assets/open-connector/catalog/apps/momentum_io.json +68 -34
- package/assets/open-connector/catalog/apps/monday.json +8 -4
- package/assets/open-connector/catalog/apps/mongo_db_atlas_administration.json +60 -30
- package/assets/open-connector/catalog/apps/moonclerk.json +312 -156
- package/assets/open-connector/catalog/apps/moorcheh.json +6 -3
- package/assets/open-connector/catalog/apps/moosend.json +42 -21
- package/assets/open-connector/catalog/apps/mopinion.json +24 -12
- package/assets/open-connector/catalog/apps/more_trees.json +8 -4
- package/assets/open-connector/catalog/apps/motion.json +4 -2
- package/assets/open-connector/catalog/apps/msg91.json +14 -7
- package/assets/open-connector/catalog/apps/mumble.json +18 -9
- package/assets/open-connector/catalog/apps/mux.json +26 -13
- package/assets/open-connector/catalog/apps/mx.json +50 -25
- package/assets/open-connector/catalog/apps/mx_toolbox.json +200 -100
- package/assets/open-connector/catalog/apps/n8n.json +60 -30
- package/assets/open-connector/catalog/apps/namely.json +16 -8
- package/assets/open-connector/catalog/apps/nango.json +10 -5
- package/assets/open-connector/catalog/apps/nasdaq.json +62 -31
- package/assets/open-connector/catalog/apps/nationalize.json +190 -0
- package/assets/open-connector/catalog/apps/navigatr.json +803 -0
- package/assets/open-connector/catalog/apps/needle.json +12 -6
- package/assets/open-connector/catalog/apps/neetocal.json +4 -2
- package/assets/open-connector/catalog/apps/neetodesk.json +12 -6
- package/assets/open-connector/catalog/apps/neon.json +14 -7
- package/assets/open-connector/catalog/apps/netease_enterprise_mail.json +74 -37
- package/assets/open-connector/catalog/apps/netease_mail.json +74 -37
- package/assets/open-connector/catalog/apps/netlify.json +18 -9
- package/assets/open-connector/catalog/apps/new_relic.json +28 -14
- package/assets/open-connector/catalog/apps/news_api.json +30 -15
- package/assets/open-connector/catalog/apps/newsdata_io.json +24 -12
- package/assets/open-connector/catalog/apps/next_dns.json +12 -6
- package/assets/open-connector/catalog/apps/ngrok.json +8 -4
- package/assets/open-connector/catalog/apps/nightfall_ai.json +322 -0
- package/assets/open-connector/catalog/apps/nimble.json +2 -1
- package/assets/open-connector/catalog/apps/ninjapear.json +72 -36
- package/assets/open-connector/catalog/apps/ninox.json +58 -29
- package/assets/open-connector/catalog/apps/nocodb.json +12 -6
- package/assets/open-connector/catalog/apps/nocrm_io.json +98 -49
- package/assets/open-connector/catalog/apps/northbeam.json +4 -2
- package/assets/open-connector/catalog/apps/notion.json +178 -18
- package/assets/open-connector/catalog/apps/novu.json +90 -45
- package/assets/open-connector/catalog/apps/nozbe_teams.json +276 -138
- package/assets/open-connector/catalog/apps/npm.json +2 -1
- package/assets/open-connector/catalog/apps/nutrient_document_web_services_api.json +18 -9
- package/assets/open-connector/catalog/apps/nylas.json +58 -29
- package/assets/open-connector/catalog/apps/nyne_ai.json +46 -23
- package/assets/open-connector/catalog/apps/ocr_web_service.json +10 -5
- package/assets/open-connector/catalog/apps/ocrspace.json +10 -5
- package/assets/open-connector/catalog/apps/octave.json +18 -9
- package/assets/open-connector/catalog/apps/oksign.json +2 -1
- package/assets/open-connector/catalog/apps/okta.json +112 -56
- package/assets/open-connector/catalog/apps/omnisend.json +8 -4
- package/assets/open-connector/catalog/apps/oncehub.json +18 -9
- package/assets/open-connector/catalog/apps/one_drive.json +191 -3
- package/assets/open-connector/catalog/apps/onedesk.json +14 -7
- package/assets/open-connector/catalog/apps/onfleet.json +2 -1
- package/assets/open-connector/catalog/apps/onlyoffice_docspace.json +20 -10
- package/assets/open-connector/catalog/apps/oomol_console.json +954 -31
- package/assets/open-connector/catalog/apps/open_hands.json +50 -25
- package/assets/open-connector/catalog/apps/openai.json +16 -8
- package/assets/open-connector/catalog/apps/openalex.json +128 -64
- package/assets/open-connector/catalog/apps/openfda.json +28 -14
- package/assets/open-connector/catalog/apps/opengraph_io.json +4 -2
- package/assets/open-connector/catalog/apps/openpagerank.json +2 -1
- package/assets/open-connector/catalog/apps/opensea.json +84 -42
- package/assets/open-connector/catalog/apps/openstatus.json +16 -8
- package/assets/open-connector/catalog/apps/opper.json +352 -0
- package/assets/open-connector/catalog/apps/optimoroute.json +32 -16
- package/assets/open-connector/catalog/apps/oracle_cloud.json +98 -49
- package/assets/open-connector/catalog/apps/orcid.json +2 -1
- package/assets/open-connector/catalog/apps/ordinal.json +4 -2
- package/assets/open-connector/catalog/apps/ortto.json +20 -10
- package/assets/open-connector/catalog/apps/ossinsight.json +60 -30
- package/assets/open-connector/catalog/apps/otter_ai.json +26 -13
- package/assets/open-connector/catalog/apps/oura.json +46 -23
- package/assets/open-connector/catalog/apps/outline.json +50 -25
- package/assets/open-connector/catalog/apps/outlook.json +190 -4
- package/assets/open-connector/catalog/apps/outlook_calendar.json +32 -16
- package/assets/open-connector/catalog/apps/paddle.json +42 -21
- package/assets/open-connector/catalog/apps/pandadoc.json +8 -4
- package/assets/open-connector/catalog/apps/paperform.json +234 -117
- package/assets/open-connector/catalog/apps/paperless_ngx.json +1358 -679
- package/assets/open-connector/catalog/apps/papertrail.json +8 -4
- package/assets/open-connector/catalog/apps/paradym.json +34 -17
- package/assets/open-connector/catalog/apps/parallel.json +62 -31
- package/assets/open-connector/catalog/apps/parsehub.json +30 -15
- package/assets/open-connector/catalog/apps/parsera.json +2 -1
- package/assets/open-connector/catalog/apps/parseur.json +48 -24
- package/assets/open-connector/catalog/apps/partner_stack_partner.json +42 -21
- package/assets/open-connector/catalog/apps/partnerstack.json +100 -50
- package/assets/open-connector/catalog/apps/passcreator.json +10 -5
- package/assets/open-connector/catalog/apps/payhip.json +110 -55
- package/assets/open-connector/catalog/apps/paystack.json +14 -7
- package/assets/open-connector/catalog/apps/pdf_api_io.json +6 -3
- package/assets/open-connector/catalog/apps/pdf_co.json +136 -68
- package/assets/open-connector/catalog/apps/pdfless.json +16 -8
- package/assets/open-connector/catalog/apps/pdfmonkey.json +94 -47
- package/assets/open-connector/catalog/apps/pendo.json +2 -1
- package/assets/open-connector/catalog/apps/peopledatalabs.json +88 -44
- package/assets/open-connector/catalog/apps/perdoo.json +80 -40
- package/assets/open-connector/catalog/apps/perigon.json +40 -20
- package/assets/open-connector/catalog/apps/persona.json +52 -26
- package/assets/open-connector/catalog/apps/personal_ai.json +38 -19
- package/assets/open-connector/catalog/apps/phantombuster.json +30 -15
- package/assets/open-connector/catalog/apps/phonely.json +8 -4
- package/assets/open-connector/catalog/apps/pi_hole.json +56 -28
- package/assets/open-connector/catalog/apps/picky_assist.json +189 -0
- package/assets/open-connector/catalog/apps/pilvio.json +80 -40
- package/assets/open-connector/catalog/apps/pinata.json +84 -42
- package/assets/open-connector/catalog/apps/pinecone.json +20 -10
- package/assets/open-connector/catalog/apps/pingdom.json +2 -1
- package/assets/open-connector/catalog/apps/pipedream.json +66 -33
- package/assets/open-connector/catalog/apps/pixellab.json +8 -4
- package/assets/open-connector/catalog/apps/placid.json +24 -12
- package/assets/open-connector/catalog/apps/plain.json +28 -14
- package/assets/open-connector/catalog/apps/planetscale.json +12 -6
- package/assets/open-connector/catalog/apps/planhat.json +104 -52
- package/assets/open-connector/catalog/apps/planly.json +738 -0
- package/assets/open-connector/catalog/apps/plasmic.json +6 -3
- package/assets/open-connector/catalog/apps/platerecognizer.json +6 -3
- package/assets/open-connector/catalog/apps/plisio.json +156 -78
- package/assets/open-connector/catalog/apps/plunk.json +12 -6
- package/assets/open-connector/catalog/apps/pointagram.json +848 -0
- package/assets/open-connector/catalog/apps/polygon_io.json +548 -274
- package/assets/open-connector/catalog/apps/positionstack.json +44 -22
- package/assets/open-connector/catalog/apps/postalytics.json +114 -57
- package/assets/open-connector/catalog/apps/posthog.json +1286 -643
- package/assets/open-connector/catalog/apps/practitest.json +8 -4
- package/assets/open-connector/catalog/apps/predis_ai.json +16 -8
- package/assets/open-connector/catalog/apps/prerender.json +8 -4
- package/assets/open-connector/catalog/apps/pretix.json +20 -10
- package/assets/open-connector/catalog/apps/printavo.json +150 -75
- package/assets/open-connector/catalog/apps/product_fruits.json +28 -14
- package/assets/open-connector/catalog/apps/productboard.json +28 -14
- package/assets/open-connector/catalog/apps/productive.json +6 -3
- package/assets/open-connector/catalog/apps/productlane.json +134 -67
- package/assets/open-connector/catalog/apps/promptlayer.json +112 -56
- package/assets/open-connector/catalog/apps/prospeo.json +22 -11
- package/assets/open-connector/catalog/apps/pubmed.json +168 -84
- package/assets/open-connector/catalog/apps/pushinator.json +120 -0
- package/assets/open-connector/catalog/apps/pylon.json +36 -18
- package/assets/open-connector/catalog/apps/qdrant.json +20 -10
- package/assets/open-connector/catalog/apps/qichacha.json +72 -36
- package/assets/open-connector/catalog/apps/qq_mail.json +74 -37
- package/assets/open-connector/catalog/apps/quaderno.json +178 -89
- package/assets/open-connector/catalog/apps/quentn.json +118 -59
- package/assets/open-connector/catalog/apps/quickbooks.json +10351 -0
- package/assets/open-connector/catalog/apps/quickchart.json +2 -1
- package/assets/open-connector/catalog/apps/quintadb.json +4 -2
- package/assets/open-connector/catalog/apps/quipteams.json +4 -2
- package/assets/open-connector/catalog/apps/quo.json +38 -19
- package/assets/open-connector/catalog/apps/ragie.json +10 -5
- package/assets/open-connector/catalog/apps/railway.json +44 -22
- package/assets/open-connector/catalog/apps/raisely.json +8 -4
- package/assets/open-connector/catalog/apps/rawg.json +48 -24
- package/assets/open-connector/catalog/apps/razorpay.json +146 -73
- package/assets/open-connector/catalog/apps/readwise.json +152 -76
- package/assets/open-connector/catalog/apps/realphonevalidation.json +14 -7
- package/assets/open-connector/catalog/apps/recallai.json +10 -5
- package/assets/open-connector/catalog/apps/recharge.json +20 -10
- package/assets/open-connector/catalog/apps/recruitee.json +48 -24
- package/assets/open-connector/catalog/apps/recruiterflow.json +10 -5
- package/assets/open-connector/catalog/apps/recurly.json +194 -97
- package/assets/open-connector/catalog/apps/reddit.json +10 -5
- package/assets/open-connector/catalog/apps/reducto.json +26 -13
- package/assets/open-connector/catalog/apps/referralhero.json +44 -22
- package/assets/open-connector/catalog/apps/refiner.json +16 -8
- package/assets/open-connector/catalog/apps/render.json +6 -3
- package/assets/open-connector/catalog/apps/renderform.json +72 -36
- package/assets/open-connector/catalog/apps/rentman.json +8 -4
- package/assets/open-connector/catalog/apps/replicate.json +16 -8
- package/assets/open-connector/catalog/apps/resend.json +98 -49
- package/assets/open-connector/catalog/apps/respond_io.json +84 -42
- package/assets/open-connector/catalog/apps/retell_ai.json +134 -105
- package/assets/open-connector/catalog/apps/retently.json +44 -22
- package/assets/open-connector/catalog/apps/revenuecat.json +16 -8
- package/assets/open-connector/catalog/apps/reversecontact.json +4 -2
- package/assets/open-connector/catalog/apps/rewiser.json +6 -3
- package/assets/open-connector/catalog/apps/riddle_quiz_maker.json +6 -3
- package/assets/open-connector/catalog/apps/ringover.json +14 -7
- package/assets/open-connector/catalog/apps/ritekit.json +104 -52
- package/assets/open-connector/catalog/apps/riveter.json +2 -1
- package/assets/open-connector/catalog/apps/roam.json +4 -2
- package/assets/open-connector/catalog/apps/roboflow.json +66 -33
- package/assets/open-connector/catalog/apps/rocket_reach.json +166 -83
- package/assets/open-connector/catalog/apps/rollbar.json +62 -31
- package/assets/open-connector/catalog/apps/rosette_text_analytics.json +46 -23
- package/assets/open-connector/catalog/apps/route4me.json +4 -2
- package/assets/open-connector/catalog/apps/roxyapi.json +5135 -0
- package/assets/open-connector/catalog/apps/runscope.json +2 -1
- package/assets/open-connector/catalog/apps/saas_custom_domains.json +72 -36
- package/assets/open-connector/catalog/apps/salesflare.json +32 -16
- package/assets/open-connector/catalog/apps/salesloft.json +14 -7
- package/assets/open-connector/catalog/apps/samcart.json +24 -12
- package/assets/open-connector/catalog/apps/satismeter.json +64 -32
- package/assets/open-connector/catalog/apps/saucelabs.json +64 -32
- package/assets/open-connector/catalog/apps/scanmalware.json +689 -0
- package/assets/open-connector/catalog/apps/scopus.json +66 -33
- package/assets/open-connector/catalog/apps/scrape_creators.json +4 -2
- package/assets/open-connector/catalog/apps/scrape_do.json +24 -12
- package/assets/open-connector/catalog/apps/scraperapi.json +4 -2
- package/assets/open-connector/catalog/apps/scrapfly.json +20 -10
- package/assets/open-connector/catalog/apps/screendesk.json +56 -28
- package/assets/open-connector/catalog/apps/screenshotbase.json +4 -2
- package/assets/open-connector/catalog/apps/sellersprite.json +414 -207
- package/assets/open-connector/catalog/apps/semantic_scholar.json +76 -38
- package/assets/open-connector/catalog/apps/sendbird.json +10 -5
- package/assets/open-connector/catalog/apps/sendblue.json +649 -0
- package/assets/open-connector/catalog/apps/sender.json +132 -66
- package/assets/open-connector/catalog/apps/sendfox.json +68 -34
- package/assets/open-connector/catalog/apps/sendgrid.json +8 -4
- package/assets/open-connector/catalog/apps/sendmator.json +26 -13
- package/assets/open-connector/catalog/apps/sendspark.json +10 -5
- package/assets/open-connector/catalog/apps/sentry.json +20 -10
- package/assets/open-connector/catalog/apps/serply.json +6 -3
- package/assets/open-connector/catalog/apps/serveravatar.json +32 -16
- package/assets/open-connector/catalog/apps/serwersms_pl.json +577 -0
- package/assets/open-connector/catalog/apps/sevdesk.json +312 -156
- package/assets/open-connector/catalog/apps/sf_express.json +76 -38
- package/assets/open-connector/catalog/apps/ship_bob.json +72 -36
- package/assets/open-connector/catalog/apps/ship_station.json +6 -3
- package/assets/open-connector/catalog/apps/shippo.json +8 -4
- package/assets/open-connector/catalog/apps/shopify.json +18639 -1057
- package/assets/open-connector/catalog/apps/shopify_partner.json +24 -12
- package/assets/open-connector/catalog/apps/shopify_storefront.json +116 -58
- package/assets/open-connector/catalog/apps/shortcut.json +398 -199
- package/assets/open-connector/catalog/apps/shorten_rest.json +2 -1
- package/assets/open-connector/catalog/apps/shortpixel.json +46 -23
- package/assets/open-connector/catalog/apps/shotstack.json +6 -3
- package/assets/open-connector/catalog/apps/signaturely.json +8 -4
- package/assets/open-connector/catalog/apps/simla.json +4 -2
- package/assets/open-connector/catalog/apps/simplelocalize.json +4 -2
- package/assets/open-connector/catalog/apps/simplesat.json +22 -11
- package/assets/open-connector/catalog/apps/simpletexting.json +1015 -0
- package/assets/open-connector/catalog/apps/skio.json +16 -8
- package/assets/open-connector/catalog/apps/skyfire.json +36 -18
- package/assets/open-connector/catalog/apps/skyvern.json +30 -15
- package/assets/open-connector/catalog/apps/slab.json +98 -49
- package/assets/open-connector/catalog/apps/slack.json +544 -37
- package/assets/open-connector/catalog/apps/slackbot.json +356 -34
- package/assets/open-connector/catalog/apps/slickdeals.json +26 -13
- package/assets/open-connector/catalog/apps/slicktext.json +72 -36
- package/assets/open-connector/catalog/apps/slite.json +96 -48
- package/assets/open-connector/catalog/apps/smartlead_ai.json +94 -47
- package/assets/open-connector/catalog/apps/smartrecruiters.json +8 -4
- package/assets/open-connector/catalog/apps/smartsheet.json +126 -63
- package/assets/open-connector/catalog/apps/sms_alert.json +1 -1
- package/assets/open-connector/catalog/apps/smtp2go.json +8 -4
- package/assets/open-connector/catalog/apps/snappy.json +1574 -0
- package/assets/open-connector/catalog/apps/snyk.json +6 -3
- package/assets/open-connector/catalog/apps/social_fetch.json +12 -6
- package/assets/open-connector/catalog/apps/softr.json +28 -14
- package/assets/open-connector/catalog/apps/solarwinds_service_desk.json +2561 -0
- package/assets/open-connector/catalog/apps/sonarcloud.json +46 -23
- package/assets/open-connector/catalog/apps/sorftime.json +66 -33
- package/assets/open-connector/catalog/apps/speedtest_tracker.json +80 -40
- package/assets/open-connector/catalog/apps/spotify.json +46 -43
- package/assets/open-connector/catalog/apps/spyfu.json +4 -2
- package/assets/open-connector/catalog/apps/square.json +8 -4
- package/assets/open-connector/catalog/apps/sslmate_cert_spotter_api.json +10 -5
- package/assets/open-connector/catalog/apps/stack_ai.json +20 -10
- package/assets/open-connector/catalog/apps/stannp.json +8 -4
- package/assets/open-connector/catalog/apps/starton.json +80 -40
- package/assets/open-connector/catalog/apps/statamic.json +6 -3
- package/assets/open-connector/catalog/apps/statista.json +24 -12
- package/assets/open-connector/catalog/apps/statsig.json +12 -6
- package/assets/open-connector/catalog/apps/statuscake.json +8 -4
- package/assets/open-connector/catalog/apps/statuspage.json +36 -18
- package/assets/open-connector/catalog/apps/statuspal.json +22 -11
- package/assets/open-connector/catalog/apps/stealthgpt.json +4 -2
- package/assets/open-connector/catalog/apps/store_leads.json +2 -1
- package/assets/open-connector/catalog/apps/storecensus.json +4 -2
- package/assets/open-connector/catalog/apps/storyblok.json +76 -38
- package/assets/open-connector/catalog/apps/stream_estate.json +10 -5
- package/assets/open-connector/catalog/apps/stripe.json +122 -13
- package/assets/open-connector/catalog/apps/subvisory.json +28 -14
- package/assets/open-connector/catalog/apps/sumup.json +2 -1
- package/assets/open-connector/catalog/apps/sunoapi.json +2 -1
- package/assets/open-connector/catalog/apps/supabase.json +36 -18
- package/assets/open-connector/catalog/apps/supermemory.json +16 -8
- package/assets/open-connector/catalog/apps/supportbee.json +218 -109
- package/assets/open-connector/catalog/apps/surecontact.json +96 -48
- package/assets/open-connector/catalog/apps/survey_monkey.json +12 -6
- package/assets/open-connector/catalog/apps/surveymethods.json +6 -3
- package/assets/open-connector/catalog/apps/tabapi.json +2 -1
- package/assets/open-connector/catalog/apps/taggun.json +36 -18
- package/assets/open-connector/catalog/apps/taiga.json +56 -28
- package/assets/open-connector/catalog/apps/tailscale.json +54 -27
- package/assets/open-connector/catalog/apps/tanium.json +2 -1
- package/assets/open-connector/catalog/apps/tapfiliate.json +224 -112
- package/assets/open-connector/catalog/apps/tave.json +212 -106
- package/assets/open-connector/catalog/apps/tavily.json +4 -2
- package/assets/open-connector/catalog/apps/teable.json +4 -2
- package/assets/open-connector/catalog/apps/teamtailor.json +16 -8
- package/assets/open-connector/catalog/apps/teamup.json +4 -2
- package/assets/open-connector/catalog/apps/telegram.json +142 -2
- package/assets/open-connector/catalog/apps/telnyx.json +2 -1
- package/assets/open-connector/catalog/apps/teltel.json +52 -26
- package/assets/open-connector/catalog/apps/templated.json +94 -47
- package/assets/open-connector/catalog/apps/templatefox.json +14 -7
- package/assets/open-connector/catalog/apps/tencent_docs.json +202 -101
- package/assets/open-connector/catalog/apps/terraform.json +72 -36
- package/assets/open-connector/catalog/apps/textcortex.json +38 -19
- package/assets/open-connector/catalog/apps/textit.json +54 -27
- package/assets/open-connector/catalog/apps/textmagic.json +38 -19
- package/assets/open-connector/catalog/apps/the_cat_api.json +8 -4
- package/assets/open-connector/catalog/apps/the_dog_api.json +8 -4
- package/assets/open-connector/catalog/apps/the_swarm.json +4 -2
- package/assets/open-connector/catalog/apps/thehive.json +4 -2
- package/assets/open-connector/catalog/apps/thehive5.json +4 -2
- package/assets/open-connector/catalog/apps/theirstack.json +26 -13
- package/assets/open-connector/catalog/apps/thesportsdb.json +433 -0
- package/assets/open-connector/catalog/apps/tianapi.json +1654 -0
- package/assets/open-connector/catalog/apps/tianyancha.json +16 -8
- package/assets/open-connector/catalog/apps/tick.json +4 -2
- package/assets/open-connector/catalog/apps/ticket_tailor.json +12 -6
- package/assets/open-connector/catalog/apps/ticketmaster.json +156 -78
- package/assets/open-connector/catalog/apps/tidb.json +62 -31
- package/assets/open-connector/catalog/apps/tikhub.json +62 -31
- package/assets/open-connector/catalog/apps/timebuzzer.json +20 -10
- package/assets/open-connector/catalog/apps/timecamp.json +186 -93
- package/assets/open-connector/catalog/apps/timelinesai.json +60 -30
- package/assets/open-connector/catalog/apps/timelink.json +192 -96
- package/assets/open-connector/catalog/apps/timem_space.json +415 -0
- package/assets/open-connector/catalog/apps/tisane.json +18 -9
- package/assets/open-connector/catalog/apps/tmdb.json +50 -25
- package/assets/open-connector/catalog/apps/todoist.json +38 -19
- package/assets/open-connector/catalog/apps/together_ai.json +4 -2
- package/assets/open-connector/catalog/apps/toggl.json +2 -1
- package/assets/open-connector/catalog/apps/tomba.json +6 -3
- package/assets/open-connector/catalog/apps/tongdaxin.json +34 -17
- package/assets/open-connector/catalog/apps/torii.json +24 -12
- package/assets/open-connector/catalog/apps/trello.json +20 -10
- package/assets/open-connector/catalog/apps/trendshift.json +48 -24
- package/assets/open-connector/catalog/apps/trent.json +4 -2
- package/assets/open-connector/catalog/apps/trilium.json +2 -1
- package/assets/open-connector/catalog/apps/triple_whale.json +18 -9
- package/assets/open-connector/catalog/apps/truvera.json +42 -21
- package/assets/open-connector/catalog/apps/turbot_pipes.json +6 -3
- package/assets/open-connector/catalog/apps/tushare.json +134 -67
- package/assets/open-connector/catalog/apps/twenty_crm.json +2 -1
- package/assets/open-connector/catalog/apps/twilio.json +168 -84
- package/assets/open-connector/catalog/apps/twitterapi_io.json +52 -26
- package/assets/open-connector/catalog/apps/twochat.json +24 -12
- package/assets/open-connector/catalog/apps/typebot.json +24 -12
- package/assets/open-connector/catalog/apps/typesafe_ai.json +2 -1
- package/assets/open-connector/catalog/apps/u301.json +4 -2
- package/assets/open-connector/catalog/apps/umami.json +6 -3
- package/assets/open-connector/catalog/apps/unipile.json +72 -36
- package/assets/open-connector/catalog/apps/unirateapi.json +442 -0
- package/assets/open-connector/catalog/apps/uniswap_api.json +46 -23
- package/assets/open-connector/catalog/apps/unsplash.json +22 -11
- package/assets/open-connector/catalog/apps/unthread.json +24 -12
- package/assets/open-connector/catalog/apps/updown_io.json +96 -48
- package/assets/open-connector/catalog/apps/uploadcare.json +44 -22
- package/assets/open-connector/catalog/apps/upstash_redis.json +2 -1
- package/assets/open-connector/catalog/apps/uptimerobot.json +4 -2
- package/assets/open-connector/catalog/apps/userflow.json +26 -13
- package/assets/open-connector/catalog/apps/uspto.json +6 -3
- package/assets/open-connector/catalog/apps/v0.json +20 -10
- package/assets/open-connector/catalog/apps/v2ex.json +38 -19
- package/assets/open-connector/catalog/apps/validemail.json +164 -0
- package/assets/open-connector/catalog/apps/valyu.json +8 -4
- package/assets/open-connector/catalog/apps/vatlayer.json +6 -3
- package/assets/open-connector/catalog/apps/vectera.json +10 -5
- package/assets/open-connector/catalog/apps/venafitlsprotectcloud.json +2 -1
- package/assets/open-connector/catalog/apps/venafitlsprotectdatacenter.json +2 -1
- package/assets/open-connector/catalog/apps/vercel.json +3422 -1469
- package/assets/open-connector/catalog/apps/veremark.json +26 -13
- package/assets/open-connector/catalog/apps/verifiedemail.json +44 -22
- package/assets/open-connector/catalog/apps/viggle.json +68 -34
- package/assets/open-connector/catalog/apps/vimeo.json +74 -37
- package/assets/open-connector/catalog/apps/viral_loops.json +549 -0
- package/assets/open-connector/catalog/apps/vitally.json +4 -2
- package/assets/open-connector/catalog/apps/voiceflow.json +2 -1
- package/assets/open-connector/catalog/apps/vonage.json +112 -56
- package/assets/open-connector/catalog/apps/vtex.json +2 -1
- package/assets/open-connector/catalog/apps/waboxapp.json +12 -6
- package/assets/open-connector/catalog/apps/wachete.json +128 -64
- package/assets/open-connector/catalog/apps/waffo.json +14 -7
- package/assets/open-connector/catalog/apps/waitwhile.json +74 -37
- package/assets/open-connector/catalog/apps/waiverforever.json +24 -12
- package/assets/open-connector/catalog/apps/wakatime.json +2 -1
- package/assets/open-connector/catalog/apps/walmart_marketplace.json +4 -2
- package/assets/open-connector/catalog/apps/wandb.json +6 -3
- package/assets/open-connector/catalog/apps/wangdian.json +14 -7
- package/assets/open-connector/catalog/apps/wappalyzer.json +18 -9
- package/assets/open-connector/catalog/apps/waterfall.json +2 -1
- package/assets/open-connector/catalog/apps/wbiztool.json +510 -0
- package/assets/open-connector/catalog/apps/web_of_science.json +60 -30
- package/assets/open-connector/catalog/apps/web_of_science_expanded.json +166 -83
- package/assets/open-connector/catalog/apps/webex.json +26 -13
- package/assets/open-connector/catalog/apps/webflow.json +102 -51
- package/assets/open-connector/catalog/apps/webscraper_io.json +78 -39
- package/assets/open-connector/catalog/apps/webscraping_ai.json +8 -4
- package/assets/open-connector/catalog/apps/webshare.json +20 -10
- package/assets/open-connector/catalog/apps/weixin_bot.json +8 -4
- package/assets/open-connector/catalog/apps/weixin_store.json +543 -2
- package/assets/open-connector/catalog/apps/whatsapp.json +515 -0
- package/assets/open-connector/catalog/apps/who_gho.json +2 -1
- package/assets/open-connector/catalog/apps/whop.json +124 -62
- package/assets/open-connector/catalog/apps/winston_ai.json +2 -1
- package/assets/open-connector/catalog/apps/wit_ai.json +2 -1
- package/assets/open-connector/catalog/apps/wolfram_alpha_api.json +10 -5
- package/assets/open-connector/catalog/apps/woocommerce.json +1045 -459
- package/assets/open-connector/catalog/apps/woodpecker_co.json +58 -29
- package/assets/open-connector/catalog/apps/woot.json +196 -98
- package/assets/open-connector/catalog/apps/wordpress.json +2425 -525
- package/assets/open-connector/catalog/apps/workable.json +4 -2
- package/assets/open-connector/catalog/apps/workday.json +374 -187
- package/assets/open-connector/catalog/apps/workiom.json +6 -3
- package/assets/open-connector/catalog/apps/workos.json +52 -26
- package/assets/open-connector/catalog/apps/workpath.json +36 -18
- package/assets/open-connector/catalog/apps/world_news_api.json +32 -16
- package/assets/open-connector/catalog/apps/wp_maps.json +150 -75
- package/assets/open-connector/catalog/apps/wrike.json +104 -52
- package/assets/open-connector/catalog/apps/writer.json +4 -2
- package/assets/open-connector/catalog/apps/wttr_in.json +80 -40
- package/assets/open-connector/catalog/apps/wufoo.json +8 -4
- package/assets/open-connector/catalog/apps/x_ai.json +8 -4
- package/assets/open-connector/catalog/apps/xata.json +16 -8
- package/assets/open-connector/catalog/apps/xero.json +104 -52
- package/assets/open-connector/catalog/apps/xingpan.json +1200 -0
- package/assets/open-connector/catalog/apps/y_gy.json +88 -44
- package/assets/open-connector/catalog/apps/yoplanning.json +12 -6
- package/assets/open-connector/catalog/apps/youtube.json +28 -14
- package/assets/open-connector/catalog/apps/yuandian.json +92 -46
- package/assets/open-connector/catalog/apps/yuanfenju.json +2244 -0
- package/assets/open-connector/catalog/apps/zendesk.json +258 -53
- package/assets/open-connector/catalog/apps/zenrows.json +36 -18
- package/assets/open-connector/catalog/apps/zenscrape.json +2 -1
- package/assets/open-connector/catalog/apps/zenserp.json +12 -6
- package/assets/open-connector/catalog/apps/zenventory.json +8 -4
- package/assets/open-connector/catalog/apps/zep.json +22 -11
- package/assets/open-connector/catalog/apps/zerobounce.json +20 -10
- package/assets/open-connector/catalog/apps/zerotier.json +9 -9
- package/assets/open-connector/catalog/apps/zhihu.json +8 -4
- package/assets/open-connector/catalog/apps/zipcodebase.json +16 -8
- package/assets/open-connector/catalog/apps/zoom.json +88 -44
- package/assets/open-connector/catalog/apps/zorus.json +54 -27
- package/assets/open-connector/catalog/apps/zotero.json +22 -11
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/assets/open-connector/migrations/0014_saas_project.sql +55 -0
- package/assets/open-connector/migrations/0015_saas_cleanup_runtime.sql +8 -0
- package/assets/open-connector/migrations/0016_trigger_policy.sql +1 -0
- package/assets/open-connector/migrations/0017_trigger_subscriptions.sql +17 -0
- package/assets/open-connector/migrations/0018_connection_retirement.sql +17 -0
- package/assets/open-connector/migrations/postgresql/0014_saas_project.sql +55 -0
- package/assets/open-connector/migrations/postgresql/0015_saas_cleanup_runtime.sql +8 -0
- package/assets/open-connector/migrations/postgresql/0016_trigger_policy.sql +1 -0
- package/assets/open-connector/migrations/postgresql/0017_trigger_subscriptions.sql +17 -0
- package/assets/open-connector/migrations/postgresql/0018_connection_retirement.sql +17 -0
- package/package.json +22 -21
- package/src/connection-service.d.ts +73 -10
- package/src/connection-service.js +156 -30
- package/src/core/action-policy.d.ts +8 -1
- package/src/core/action-policy.js +51 -0
- package/src/core/aws-sigv4.d.ts +3 -0
- package/src/core/aws-sigv4.js +2 -1
- package/src/core/cast.d.ts +8 -0
- package/src/core/cast.js +11 -3
- package/src/core/guarded-fetch.d.ts +8 -0
- package/src/core/guarded-fetch.js +44 -11
- package/src/core/json-schema.js +7 -1
- package/src/core/provider-http-dispatch.d.ts +82 -0
- package/src/core/provider-http-dispatch.js +177 -0
- package/src/core/provider-scenarios.js +0 -1
- package/src/core/provider-setup.d.ts +2 -0
- package/src/core/provider-setup.js +1 -0
- package/src/core/remote-http.d.ts +33 -0
- package/src/core/remote-http.js +104 -0
- package/src/core/request.d.ts +21 -0
- package/src/core/request.js +54 -0
- package/src/core/types.d.ts +19 -1
- package/src/marketplace/marketplace-service.d.ts +6 -1
- package/src/marketplace/marketplace-service.js +85 -93
- package/src/mcp.js +19 -5
- package/src/oauth/oauth-client-config-service.js +11 -3
- package/src/oauth/oauth-credential-refresh-service.d.ts +20 -0
- package/src/oauth/oauth-credential-refresh-service.js +58 -3
- package/src/oauth/oauth-flow-service.d.ts +10 -1
- package/src/oauth/oauth-flow-service.js +62 -39
- package/src/oauth/oauth-token.d.ts +33 -3
- package/src/oauth/oauth-token.js +98 -4
- package/src/providers/action-contracts.generated.d.ts +65 -11
- package/src/providers/agenty/runtime.js +5 -4
- package/src/providers/airtable/executors.d.ts +3 -0
- package/src/providers/airtable/executors.js +2 -0
- package/src/providers/airtable/trigger-on-record-changed.d.ts +2 -0
- package/src/providers/airtable/trigger-on-record-changed.definition.d.ts +4 -0
- package/src/providers/airtable/trigger-on-record-changed.definition.js +54 -0
- package/src/providers/airtable/trigger-on-record-changed.js +235 -0
- package/src/providers/aisa/executors.js +206 -22
- package/src/providers/aliyun_oss/executors.js +5 -4
- package/src/providers/amazing_marvin/actions.d.ts +2 -0
- package/src/providers/amazing_marvin/actions.js +145 -0
- package/src/providers/amazing_marvin/executors.d.ts +4 -0
- package/src/providers/amazing_marvin/executors.js +98 -0
- package/src/providers/api_route/executors.js +77 -0
- package/src/providers/aws_s3/executors.js +5 -4
- package/src/providers/baidu_netdisk/runtime.js +5 -4
- package/src/providers/box/executors.js +5 -4
- package/src/providers/cal/actions.js +5 -1
- package/src/providers/campaign_cleaner/executors.js +5 -4
- package/src/providers/cheaperinference/executors.d.ts +4 -0
- package/src/providers/cheaperinference/executors.js +130 -0
- package/src/providers/clay/actions.d.ts +2 -0
- package/src/providers/clay/actions.js +222 -0
- package/src/providers/clay/batch-actions.d.ts +2 -0
- package/src/providers/clay/batch-actions.js +71 -0
- package/src/providers/clay/batch-runtime.d.ts +2 -0
- package/src/providers/clay/batch-runtime.js +79 -0
- package/src/providers/clay/executors.d.ts +4 -0
- package/src/providers/clay/executors.js +78 -0
- package/src/providers/clay/request.d.ts +4 -0
- package/src/providers/clay/request.js +34 -0
- package/src/providers/clay/table-schema.d.ts +2 -0
- package/src/providers/clay/table-schema.js +102 -0
- package/src/providers/cloudflare_r2/runtime.js +5 -4
- package/src/providers/commonninja/executors.d.ts +4 -0
- package/src/providers/commonninja/executors.js +118 -0
- package/src/providers/cronlytic/actions.d.ts +2 -0
- package/src/providers/cronlytic/actions.js +116 -0
- package/src/providers/cronlytic/executors.d.ts +4 -0
- package/src/providers/cronlytic/executors.js +146 -0
- package/src/providers/dataforseo/runtime.js +2 -2
- package/src/providers/dropbox/executors.js +4 -4
- package/src/providers/dynalist/actions.d.ts +2 -0
- package/src/providers/dynalist/actions.js +191 -0
- package/src/providers/dynalist/executors.d.ts +4 -0
- package/src/providers/dynalist/executors.js +58 -0
- package/src/providers/easy_peasy_ai/actions.d.ts +2 -0
- package/src/providers/easy_peasy_ai/actions.js +107 -0
- package/src/providers/easy_peasy_ai/executors.d.ts +4 -0
- package/src/providers/easy_peasy_ai/executors.js +90 -0
- package/src/providers/edgeone_makers/executors.d.ts +4 -0
- package/src/providers/edgeone_makers/executors.js +441 -0
- package/src/providers/elevenlabs/executors.js +23 -19
- package/src/providers/elevenreader/runtime.js +7 -6
- package/src/providers/enormail/executors.d.ts +4 -0
- package/src/providers/enormail/executors.js +97 -0
- package/src/providers/explorium/actions.d.ts +2 -0
- package/src/providers/explorium/actions.js +124 -0
- package/src/providers/explorium/executors.d.ts +4 -0
- package/src/providers/explorium/executors.js +100 -0
- package/src/providers/feishu/executors.d.ts +3 -0
- package/src/providers/feishu/executors.js +47 -2
- package/src/providers/feishu/runtime.js +4 -2
- package/src/providers/feishu/shared/client.js +4 -4
- package/src/providers/feishu/shared/docs-actions.js +27 -1
- package/src/providers/feishu/shared/docs-runtime.js +54 -3
- package/src/providers/feishu/shared/domain-media-runtime.js +1 -1
- package/src/providers/feishu/shared/drive-runtime.js +1 -1
- package/src/providers/feishu/shared/slides-runtime.js +1 -1
- package/src/providers/feishu/shared/vc-actions.js +9 -2
- package/src/providers/feishu/shared/vc-runtime.js +1 -0
- package/src/providers/feishu/shared/wiki-actions.js +2 -3
- package/src/providers/feishu/shared/wiki-runtime.js +1 -2
- package/src/providers/feishu_app_bot/executors.d.ts +3 -0
- package/src/providers/feishu_app_bot/executors.js +11 -8
- package/src/providers/feishu_app_bot/trigger-config.d.ts +1 -0
- package/src/providers/feishu_app_bot/trigger-config.js +10 -0
- package/src/providers/feishu_app_bot/trigger-on-event.d.ts +2 -0
- package/src/providers/feishu_app_bot/trigger-on-event.definition.d.ts +4 -0
- package/src/providers/feishu_app_bot/trigger-on-event.definition.js +63 -0
- package/src/providers/feishu_app_bot/trigger-on-event.js +29 -0
- package/src/providers/feishu_app_bot/trigger-subscriptions.d.ts +5 -0
- package/src/providers/feishu_app_bot/trigger-subscriptions.js +70 -0
- package/src/providers/fengshui/executors.d.ts +4 -0
- package/src/providers/fengshui/executors.js +23 -0
- package/src/providers/fengshui/runtime.d.ts +4 -0
- package/src/providers/fengshui/runtime.js +95 -0
- package/src/providers/files_com/executors.js +17 -18
- package/src/providers/finlight/actions.d.ts +2 -0
- package/src/providers/finlight/actions.js +130 -0
- package/src/providers/finlight/executors.d.ts +4 -0
- package/src/providers/finlight/executors.js +120 -0
- package/src/providers/firecrawl/executors.d.ts +6 -2
- package/src/providers/firecrawl/executors.js +60 -9
- package/src/providers/flotiq/actions.d.ts +2 -0
- package/src/providers/flotiq/actions.js +114 -0
- package/src/providers/flotiq/executors.d.ts +4 -0
- package/src/providers/flotiq/executors.js +135 -0
- package/src/providers/framejet/runtime.js +7 -6
- package/src/providers/freeastroapi/constants.d.ts +8 -0
- package/src/providers/freeastroapi/constants.js +24 -0
- package/src/providers/freeastroapi/executors.d.ts +4 -0
- package/src/providers/freeastroapi/executors.js +18 -0
- package/src/providers/freeastroapi/input-validation.d.ts +2 -0
- package/src/providers/freeastroapi/input-validation.js +186 -0
- package/src/providers/freeastroapi/runtime.d.ts +5 -0
- package/src/providers/freeastroapi/runtime.js +294 -0
- package/src/providers/fusion-api/operations.js +8 -8
- package/src/providers/fuxin/executors.js +9 -8
- package/src/providers/fxmacrodata/executors.d.ts +4 -0
- package/src/providers/fxmacrodata/executors.js +32 -0
- package/src/providers/fxmacrodata/runtime.d.ts +34 -0
- package/src/providers/fxmacrodata/runtime.js +154 -0
- package/src/providers/gemini/runtime.d.ts +1 -1
- package/src/providers/gemini/runtime.js +1 -1
- package/src/providers/getyoutubetranscript/executors.d.ts +4 -0
- package/src/providers/getyoutubetranscript/executors.js +14 -0
- package/src/providers/getyoutubetranscript/runtime.d.ts +8 -0
- package/src/providers/getyoutubetranscript/runtime.js +101 -0
- package/src/providers/github/executors.d.ts +3 -0
- package/src/providers/github/executors.js +6 -0
- package/src/providers/github/runtime-pull-request.js +5 -4
- package/src/providers/github/trigger-on-repo-event.d.ts +2 -0
- package/src/providers/github/trigger-on-repo-event.definition.d.ts +4 -0
- package/src/providers/github/trigger-on-repo-event.definition.js +94 -0
- package/src/providers/github/trigger-on-repo-event.js +168 -0
- package/src/providers/github/trigger-watch-pull-request.d.ts +2 -0
- package/src/providers/github/trigger-watch-pull-request.definition.d.ts +4 -0
- package/src/providers/github/trigger-watch-pull-request.definition.js +49 -0
- package/src/providers/github/trigger-watch-pull-request.js +106 -0
- package/src/providers/gitlab/executors.d.ts +3 -0
- package/src/providers/gitlab/executors.js +2 -0
- package/src/providers/gitlab/trigger-on-project-event.d.ts +2 -0
- package/src/providers/gitlab/trigger-on-project-event.definition.d.ts +5 -0
- package/src/providers/gitlab/trigger-on-project-event.definition.js +63 -0
- package/src/providers/gitlab/trigger-on-project-event.js +186 -0
- package/src/providers/gmail/executors.d.ts +3 -0
- package/src/providers/gmail/executors.js +168 -73
- package/src/providers/gmail/limits.d.ts +3 -0
- package/src/providers/gmail/limits.js +5 -0
- package/src/providers/gmail/message.d.ts +13 -18
- package/src/providers/gmail/message.js +159 -54
- package/src/providers/gmail/mime-attachments.d.ts +8 -0
- package/src/providers/gmail/mime-attachments.js +76 -0
- package/src/providers/gmail/mime.d.ts +49 -0
- package/src/providers/gmail/mime.js +481 -0
- package/src/providers/gmail/scopes.d.ts +8 -5
- package/src/providers/gmail/scopes.js +8 -5
- package/src/providers/gmail/trigger-on-message-received.d.ts +2 -0
- package/src/providers/gmail/trigger-on-message-received.definition.d.ts +4 -0
- package/src/providers/gmail/trigger-on-message-received.definition.js +74 -0
- package/src/providers/gmail/trigger-on-message-received.js +232 -0
- package/src/providers/googleads/executors.d.ts +1 -1
- package/src/providers/googleads/executors.js +9 -9
- package/src/providers/googlecalendar/executors.d.ts +3 -0
- package/src/providers/googlecalendar/executors.js +2 -0
- package/src/providers/googlecalendar/scopes.d.ts +11 -0
- package/src/providers/googlecalendar/scopes.js +18 -0
- package/src/providers/googlecalendar/trigger-on-event-changed.d.ts +2 -0
- package/src/providers/googlecalendar/trigger-on-event-changed.definition.d.ts +4 -0
- package/src/providers/googlecalendar/trigger-on-event-changed.definition.js +74 -0
- package/src/providers/googlecalendar/trigger-on-event-changed.js +233 -0
- package/src/providers/googledrive/executors.d.ts +3 -0
- package/src/providers/googledrive/executors.js +16 -7
- package/src/providers/googledrive/runtime-request.js +43 -3
- package/src/providers/googledrive/trigger-changes.d.ts +12 -0
- package/src/providers/googledrive/trigger-changes.definition.d.ts +7 -0
- package/src/providers/googledrive/trigger-changes.definition.js +101 -0
- package/src/providers/googledrive/trigger-changes.js +458 -0
- package/src/providers/googledrive/trigger-on-file-change.d.ts +2 -0
- package/src/providers/googledrive/trigger-on-file-change.definition.d.ts +4 -0
- package/src/providers/googledrive/trigger-on-file-change.definition.js +77 -0
- package/src/providers/googledrive/trigger-on-file-change.js +258 -0
- package/src/providers/googleforms/executors.d.ts +1 -2
- package/src/providers/googleforms/executors.js +8 -8
- package/src/providers/googlephotos/executors.js +8 -1
- package/src/providers/googlesheets/executors.d.ts +3 -0
- package/src/providers/googlesheets/executors.js +2 -0
- package/src/providers/googlesheets/trigger-on-row-added.d.ts +2 -0
- package/src/providers/googlesheets/trigger-on-row-added.definition.d.ts +4 -0
- package/src/providers/googlesheets/trigger-on-row-added.definition.js +54 -0
- package/src/providers/googlesheets/trigger-on-row-added.js +234 -0
- package/src/providers/greip/actions.d.ts +2 -0
- package/src/providers/greip/actions.js +107 -0
- package/src/providers/greip/executors.d.ts +4 -0
- package/src/providers/greip/executors.js +84 -0
- package/src/providers/greynoise/executors.d.ts +3 -0
- package/src/providers/greynoise/executors.js +17 -0
- package/src/providers/greynoise/runtime.d.ts +9 -0
- package/src/providers/greynoise/runtime.js +71 -0
- package/src/providers/growsurf/actions.d.ts +2 -0
- package/src/providers/growsurf/actions.js +182 -0
- package/src/providers/growsurf/executors.d.ts +4 -0
- package/src/providers/growsurf/executors.js +140 -0
- package/src/providers/hithink_finance/market-dumps.js +58 -12
- package/src/providers/hithink_finance/runtime.js +1 -1
- package/src/providers/http-json-runtime.js +4 -1
- package/src/providers/huodingdong_mcp/executors.d.ts +4 -0
- package/src/providers/huodingdong_mcp/executors.js +58 -0
- package/src/providers/indexed/executors.d.ts +4 -0
- package/src/providers/indexed/executors.js +16 -0
- package/src/providers/indexed/runtime.d.ts +26 -0
- package/src/providers/indexed/runtime.js +128 -0
- package/src/providers/issue_badge/actions.d.ts +2 -0
- package/src/providers/issue_badge/actions.js +95 -0
- package/src/providers/issue_badge/executors.d.ts +4 -0
- package/src/providers/issue_badge/executors.js +98 -0
- package/src/providers/iyunbiao/runtime.js +5 -4
- package/src/providers/justoneapi/actions-commerce.d.ts +2 -0
- package/src/providers/justoneapi/actions-commerce.js +585 -0
- package/src/providers/justoneapi/actions-creators.d.ts +2 -0
- package/src/providers/justoneapi/actions-creators.js +986 -0
- package/src/providers/justoneapi/actions-media.d.ts +2 -0
- package/src/providers/justoneapi/actions-media.js +345 -0
- package/src/providers/justoneapi/actions-social-cn.d.ts +2 -0
- package/src/providers/justoneapi/actions-social-cn.js +1231 -0
- package/src/providers/justoneapi/actions-social-global.d.ts +2 -0
- package/src/providers/justoneapi/actions-social-global.js +455 -0
- package/src/providers/justoneapi/actions.d.ts +4 -0
- package/src/providers/justoneapi/actions.js +32 -0
- package/src/providers/justoneapi/endpoint-definition.d.ts +9 -0
- package/src/providers/justoneapi/endpoint-definition.js +1 -0
- package/src/providers/justoneapi/executors.d.ts +4 -0
- package/src/providers/justoneapi/executors.js +143 -0
- package/src/providers/kagi/actions.d.ts +2 -0
- package/src/providers/kagi/actions.js +36 -0
- package/src/providers/kagi/executors.d.ts +4 -0
- package/src/providers/kagi/executors.js +120 -0
- package/src/providers/karakeep/runtime-assets.js +7 -5
- package/src/providers/kenjo/actions.d.ts +2 -0
- package/src/providers/kenjo/actions.js +112 -0
- package/src/providers/kenjo/executors.d.ts +4 -0
- package/src/providers/kenjo/executors.js +138 -0
- package/src/providers/keyzy/actions.d.ts +2 -0
- package/src/providers/keyzy/actions.js +102 -0
- package/src/providers/keyzy/executors.d.ts +4 -0
- package/src/providers/keyzy/executors.js +114 -0
- package/src/providers/kickofflabs/actions.d.ts +2 -0
- package/src/providers/kickofflabs/actions.js +48 -0
- package/src/providers/kickofflabs/executors.d.ts +4 -0
- package/src/providers/kickofflabs/executors.js +71 -0
- package/src/providers/klangio/runtime.js +10 -8
- package/src/providers/latchshot/executors.js +8 -6
- package/src/providers/linear/executors.d.ts +3 -0
- package/src/providers/linear/executors.js +2 -0
- package/src/providers/linear/trigger-on-issue-changed.d.ts +2 -0
- package/src/providers/linear/trigger-on-issue-changed.definition.d.ts +5 -0
- package/src/providers/linear/trigger-on-issue-changed.definition.js +43 -0
- package/src/providers/linear/trigger-on-issue-changed.js +215 -0
- package/src/providers/lingxing_mcp/runtime.js +39 -24
- package/src/providers/litellm/executors.d.ts +4 -0
- package/src/providers/litellm/executors.js +34 -0
- package/src/providers/litellm/runtime.d.ts +29 -0
- package/src/providers/litellm/runtime.js +227 -0
- package/src/providers/mcp-tools.d.ts +2 -0
- package/src/providers/mcp-tools.js +2 -1
- package/src/providers/mem0/runtime.d.ts +1 -2
- package/src/providers/mem0/runtime.js +3 -4
- package/src/providers/memento_database/actions.d.ts +2 -0
- package/src/providers/memento_database/actions.js +170 -0
- package/src/providers/memento_database/executors.d.ts +4 -0
- package/src/providers/memento_database/executors.js +113 -0
- package/src/providers/mistral_ai/executors.js +5 -4
- package/src/providers/nationalize/executors.d.ts +4 -0
- package/src/providers/nationalize/executors.js +62 -0
- package/src/providers/navigatr/actions.d.ts +2 -0
- package/src/providers/navigatr/actions.js +179 -0
- package/src/providers/navigatr/executors.d.ts +4 -0
- package/src/providers/navigatr/executors.js +118 -0
- package/src/providers/nightfall_ai/actions.d.ts +2 -0
- package/src/providers/nightfall_ai/actions.js +74 -0
- package/src/providers/nightfall_ai/executors.d.ts +4 -0
- package/src/providers/nightfall_ai/executors.js +62 -0
- package/src/providers/notion/executors.d.ts +3 -0
- package/src/providers/notion/executors.js +2 -0
- package/src/providers/notion/trigger-on-database-page-event.d.ts +2 -0
- package/src/providers/notion/trigger-on-database-page-event.definition.d.ts +4 -0
- package/src/providers/notion/trigger-on-database-page-event.definition.js +63 -0
- package/src/providers/notion/trigger-on-database-page-event.js +293 -0
- package/src/providers/one_drive/executors.d.ts +3 -0
- package/src/providers/one_drive/executors.js +7 -4
- package/src/providers/one_drive/trigger-on-item-changed.d.ts +2 -0
- package/src/providers/one_drive/trigger-on-item-changed.definition.d.ts +4 -0
- package/src/providers/one_drive/trigger-on-item-changed.definition.js +63 -0
- package/src/providers/one_drive/trigger-on-item-changed.js +214 -0
- package/src/providers/oomol_console/permission-groups.d.ts +12 -0
- package/src/providers/oomol_console/permission-groups.js +28 -3
- package/src/providers/oomol_console/runtime.js +29 -3
- package/src/providers/opper/executors.d.ts +4 -0
- package/src/providers/opper/executors.js +89 -0
- package/src/providers/outlook/executors.d.ts +3 -0
- package/src/providers/outlook/executors.js +5 -3
- package/src/providers/outlook/trigger-on-message-received.d.ts +2 -0
- package/src/providers/outlook/trigger-on-message-received.definition.d.ts +4 -0
- package/src/providers/outlook/trigger-on-message-received.definition.js +93 -0
- package/src/providers/outlook/trigger-on-message-received.js +226 -0
- package/src/providers/outlook_calendar/executors.js +6 -0
- package/src/providers/picky_assist/actions.d.ts +2 -0
- package/src/providers/picky_assist/actions.js +61 -0
- package/src/providers/picky_assist/executors.d.ts +4 -0
- package/src/providers/picky_assist/executors.js +68 -0
- package/src/providers/pixellab/runtime.js +6 -5
- package/src/providers/planly/actions.d.ts +2 -0
- package/src/providers/planly/actions.js +155 -0
- package/src/providers/planly/executors.d.ts +4 -0
- package/src/providers/planly/executors.js +83 -0
- package/src/providers/pointagram/actions.d.ts +2 -0
- package/src/providers/pointagram/actions.js +167 -0
- package/src/providers/pointagram/executors.d.ts +4 -0
- package/src/providers/pointagram/executors.js +107 -0
- package/src/providers/provider-loader.d.ts +5 -0
- package/src/providers/provider-loader.js +4 -0
- package/src/providers/provider-runtime.d.ts +9 -2
- package/src/providers/provider-runtime.js +69 -15
- package/src/providers/pushinator/actions.d.ts +2 -0
- package/src/providers/pushinator/actions.js +34 -0
- package/src/providers/pushinator/executors.d.ts +4 -0
- package/src/providers/pushinator/executors.js +61 -0
- package/src/providers/quickbooks/constants.d.ts +18 -0
- package/src/providers/quickbooks/constants.js +15 -0
- package/src/providers/quickbooks/executors.d.ts +9 -0
- package/src/providers/quickbooks/executors.js +407 -0
- package/src/providers/quickbooks/oauth.d.ts +11 -0
- package/src/providers/quickbooks/oauth.js +103 -0
- package/src/providers/quickbooks/payloads.d.ts +7 -0
- package/src/providers/quickbooks/payloads.js +104 -0
- package/src/providers/quickbooks/resources.d.ts +37 -0
- package/src/providers/quickbooks/resources.js +256 -0
- package/src/providers/quickbooks/runtime.d.ts +93 -0
- package/src/providers/quickbooks/runtime.js +278 -0
- package/src/providers/registry.generated.js +55 -1
- package/src/providers/retell_ai/executors.d.ts +0 -5
- package/src/providers/retell_ai/executors.js +60 -93
- package/src/providers/roxyapi/executors.d.ts +4 -0
- package/src/providers/roxyapi/executors.js +25 -0
- package/src/providers/roxyapi/runtime.d.ts +10 -0
- package/src/providers/roxyapi/runtime.js +279 -0
- package/src/providers/scanmalware/executors.d.ts +3 -0
- package/src/providers/scanmalware/executors.js +17 -0
- package/src/providers/scanmalware/runtime.d.ts +9 -0
- package/src/providers/scanmalware/runtime.js +120 -0
- package/src/providers/screenshotone/runtime.js +7 -6
- package/src/providers/sendblue/actions.d.ts +2 -0
- package/src/providers/sendblue/actions.js +163 -0
- package/src/providers/sendblue/executors.d.ts +4 -0
- package/src/providers/sendblue/executors.js +156 -0
- package/src/providers/serwersms_pl/actions.d.ts +2 -0
- package/src/providers/serwersms_pl/actions.js +166 -0
- package/src/providers/serwersms_pl/executors.d.ts +4 -0
- package/src/providers/serwersms_pl/executors.js +85 -0
- package/src/providers/shopify/bulk.d.ts +2 -0
- package/src/providers/shopify/bulk.js +139 -0
- package/src/providers/shopify/catalog.d.ts +2 -0
- package/src/providers/shopify/catalog.js +301 -0
- package/src/providers/shopify/client.d.ts +13 -0
- package/src/providers/shopify/client.js +67 -0
- package/src/providers/shopify/content-runtime.d.ts +2 -0
- package/src/providers/shopify/{runtime.js → content-runtime.js} +14 -206
- package/src/providers/shopify/context.d.ts +10 -0
- package/src/providers/shopify/context.js +1 -0
- package/src/providers/shopify/customers.d.ts +2 -0
- package/src/providers/shopify/customers.js +118 -0
- package/src/providers/shopify/executors.d.ts +5 -0
- package/src/providers/shopify/executors.js +50 -7
- package/src/providers/shopify/graphql.d.ts +2 -0
- package/src/providers/shopify/graphql.js +17 -0
- package/src/providers/shopify/inventory.d.ts +2 -0
- package/src/providers/shopify/inventory.js +362 -0
- package/src/providers/shopify/oauth.d.ts +2 -0
- package/src/providers/shopify/oauth.js +94 -0
- package/src/providers/shopify/operation-definitions.d.ts +13 -0
- package/src/providers/shopify/operation-definitions.js +414 -0
- package/src/providers/shopify/operation-queries.d.ts +1 -0
- package/src/providers/shopify/operation-queries.js +62 -0
- package/src/providers/shopify/operations.d.ts +2 -0
- package/src/providers/shopify/operations.js +48 -0
- package/src/providers/shopify/orders.d.ts +2 -0
- package/src/providers/shopify/orders.js +357 -0
- package/src/providers/shopify/runtime-common.d.ts +16 -0
- package/src/providers/shopify/runtime-common.js +85 -0
- package/src/providers/shopify/shop-domain.d.ts +1 -0
- package/src/providers/shopify/shop-domain.js +49 -0
- package/src/providers/shopify/shop.d.ts +2 -0
- package/src/providers/shopify/shop.js +14 -0
- package/src/providers/shopify/trigger-on-shop-event.d.ts +2 -0
- package/src/providers/shopify/trigger-on-shop-event.definition.d.ts +4 -0
- package/src/providers/shopify/trigger-on-shop-event.definition.js +214 -0
- package/src/providers/shopify/trigger-on-shop-event.js +165 -0
- package/src/providers/simpletexting/actions.d.ts +2 -0
- package/src/providers/simpletexting/actions.js +195 -0
- package/src/providers/simpletexting/executors.d.ts +4 -0
- package/src/providers/simpletexting/executors.js +157 -0
- package/src/providers/slack/actions.js +44 -0
- package/src/providers/slack/executors.d.ts +3 -0
- package/src/providers/slack/executors.js +2 -0
- package/src/providers/slack/runtime.js +65 -6
- package/src/providers/slack/trigger-on-message-posted.d.ts +2 -0
- package/src/providers/slack/trigger-on-message-posted.definition.d.ts +4 -0
- package/src/providers/slack/trigger-on-message-posted.definition.js +80 -0
- package/src/providers/slack/trigger-on-message-posted.js +176 -0
- package/src/providers/snappy/actions.d.ts +2 -0
- package/src/providers/snappy/actions.js +318 -0
- package/src/providers/snappy/executors.d.ts +4 -0
- package/src/providers/snappy/executors.js +89 -0
- package/src/providers/solarwinds_service_desk/actions.d.ts +2 -0
- package/src/providers/solarwinds_service_desk/actions.js +207 -0
- package/src/providers/solarwinds_service_desk/executors.d.ts +4 -0
- package/src/providers/solarwinds_service_desk/executors.js +160 -0
- package/src/providers/spotify/runtime.js +15 -4
- package/src/providers/stripe/executors.d.ts +3 -0
- package/src/providers/stripe/executors.js +2 -0
- package/src/providers/stripe/trigger-on-event.d.ts +2 -0
- package/src/providers/stripe/trigger-on-event.definition.d.ts +4 -0
- package/src/providers/stripe/trigger-on-event.definition.js +43 -0
- package/src/providers/stripe/trigger-on-event.js +212 -0
- package/src/providers/supabase/runtime.js +5 -4
- package/src/providers/telegram/executors.d.ts +3 -0
- package/src/providers/telegram/executors.js +2 -0
- package/src/providers/telegram/trigger-on-update.d.ts +2 -0
- package/src/providers/telegram/trigger-on-update.definition.d.ts +5 -0
- package/src/providers/telegram/trigger-on-update.definition.js +78 -0
- package/src/providers/telegram/trigger-on-update.js +141 -0
- package/src/providers/templatedocs/runtime.js +8 -5
- package/src/providers/thesportsdb/actions.d.ts +2 -0
- package/src/providers/thesportsdb/actions.js +116 -0
- package/src/providers/thesportsdb/executors.d.ts +4 -0
- package/src/providers/thesportsdb/executors.js +114 -0
- package/src/providers/tianapi/executors.d.ts +4 -0
- package/src/providers/tianapi/executors.js +18 -0
- package/src/providers/tianapi/runtime.d.ts +5 -0
- package/src/providers/tianapi/runtime.js +315 -0
- package/src/providers/timem_space/actions.d.ts +2 -0
- package/src/providers/timem_space/actions.js +112 -0
- package/src/providers/timem_space/executors.d.ts +3 -0
- package/src/providers/timem_space/executors.js +52 -0
- package/src/providers/tinypng/runtime.js +8 -7
- package/src/providers/unirateapi/actions.d.ts +2 -0
- package/src/providers/unirateapi/actions.js +122 -0
- package/src/providers/unirateapi/executors.d.ts +4 -0
- package/src/providers/unirateapi/executors.js +89 -0
- package/src/providers/validemail/executors.d.ts +4 -0
- package/src/providers/validemail/executors.js +65 -0
- package/src/providers/vercel/executors.js +1 -0
- package/src/providers/vercel/runtime.d.ts +1 -0
- package/src/providers/vercel/runtime.js +737 -27
- package/src/providers/vimeo/runtime.js +5 -4
- package/src/providers/viral_loops/actions.d.ts +2 -0
- package/src/providers/viral_loops/actions.js +90 -0
- package/src/providers/viral_loops/executors.d.ts +4 -0
- package/src/providers/viral_loops/executors.js +81 -0
- package/src/providers/wbiztool/actions.d.ts +2 -0
- package/src/providers/wbiztool/actions.js +127 -0
- package/src/providers/wbiztool/executors.d.ts +4 -0
- package/src/providers/wbiztool/executors.js +140 -0
- package/src/providers/weixin_store/access-token.d.ts +2 -1
- package/src/providers/weixin_store/access-token.js +15 -4
- package/src/providers/weixin_store/executors.js +97 -12
- package/src/providers/whatsapp/runtime.js +223 -3
- package/src/providers/woocommerce/executors.d.ts +3 -0
- package/src/providers/woocommerce/executors.js +2 -0
- package/src/providers/woocommerce/trigger-on-store-event.d.ts +2 -0
- package/src/providers/woocommerce/trigger-on-store-event.definition.d.ts +4 -0
- package/src/providers/woocommerce/trigger-on-store-event.definition.js +55 -0
- package/src/providers/woocommerce/trigger-on-store-event.js +179 -0
- package/src/providers/wordpress/runtime.d.ts +0 -9
- package/src/providers/wordpress/runtime.js +354 -91
- package/src/providers/xingpan/constants.d.ts +1 -0
- package/src/providers/xingpan/constants.js +14 -0
- package/src/providers/xingpan/executors.d.ts +4 -0
- package/src/providers/xingpan/executors.js +18 -0
- package/src/providers/xingpan/runtime.d.ts +5 -0
- package/src/providers/xingpan/runtime.js +229 -0
- package/src/providers/youtube/runtime.js +5 -4
- package/src/providers/yuanfenju/executors.d.ts +4 -0
- package/src/providers/yuanfenju/executors.js +28 -0
- package/src/providers/yuanfenju/runtime.d.ts +10 -0
- package/src/providers/yuanfenju/runtime.js +281 -0
- package/src/providers/zendesk/executors.d.ts +3 -0
- package/src/providers/zendesk/executors.js +2 -0
- package/src/providers/zendesk/trigger-on-event.d.ts +2 -0
- package/src/providers/zendesk/trigger-on-event.definition.d.ts +5 -0
- package/src/providers/zendesk/trigger-on-event.definition.js +101 -0
- package/src/providers/zendesk/trigger-on-event.js +188 -0
- package/src/saas/saas-cleanup-service.d.ts +26 -0
- package/src/saas/saas-cleanup-service.js +124 -0
- package/src/saas/saas-client.d.ts +86 -0
- package/src/saas/saas-client.js +369 -0
- package/src/saas/saas-execution-service.d.ts +15 -0
- package/src/saas/saas-execution-service.js +21 -0
- package/src/saas/saas-oauth-service.d.ts +25 -0
- package/src/saas/saas-oauth-service.js +197 -0
- package/src/saas/saas-project-service.d.ts +61 -0
- package/src/saas/saas-project-service.js +211 -0
- package/src/server/actions/action-idempotency.d.ts +1 -0
- package/src/server/actions/action-idempotency.js +1 -0
- package/src/server/actions/action-runner.d.ts +10 -0
- package/src/server/actions/action-runner.js +60 -7
- package/src/server/actions/run-log-summary.js +10 -0
- package/src/server/api/action-example.d.ts +3 -0
- package/src/server/api/action-example.js +402 -0
- package/src/server/api/action-markdown.js +1 -35
- package/src/server/api/auth.d.ts +1 -0
- package/src/server/api/auth.js +20 -2
- package/src/server/api/cache-policy.js +7 -5
- package/src/server/api/connection-input.d.ts +7 -1
- package/src/server/api/connection-input.js +7 -1
- package/src/server/api/connection-routes.d.ts +3 -1
- package/src/server/api/connection-routes.js +21 -3
- package/src/server/api/http-utils.d.ts +4 -3
- package/src/server/api/oauth-completion-page.d.ts +127 -1
- package/src/server/api/oauth-completion-page.js +117 -20
- package/src/server/api/openapi.js +134 -19
- package/src/server/api/pattern-example.d.ts +22 -0
- package/src/server/api/pattern-example.js +413 -0
- package/src/server/api/policy-input.js +6 -0
- package/src/server/api/runtime-api.d.ts +10 -2
- package/src/server/api/runtime-api.js +25 -6
- package/src/server/api/saas-completion-page.d.ts +2 -0
- package/src/server/api/saas-completion-page.js +103 -0
- package/src/server/connect-app.d.ts +8 -0
- package/src/server/connect-app.js +55 -0
- package/src/server/connect-server.d.ts +18 -0
- package/src/server/connect-server.js +188 -20
- package/src/server/connector-runtime.d.ts +8 -1
- package/src/server/connector-runtime.js +11 -2
- package/src/server/files/node-transit-file-upload.js +7 -3
- package/src/server/files/transit-file-store.js +10 -4
- package/src/server/files/transit-files.d.ts +18 -0
- package/src/server/files/transit-files.js +90 -20
- package/src/server/proxy/proxy-runner.d.ts +8 -1
- package/src/server/proxy/proxy-runner.js +95 -28
- package/src/server/storage/connection-request-store.d.ts +41 -1
- package/src/server/storage/connection-request-store.js +260 -22
- package/src/server/storage/connection-retirement.d.ts +7 -0
- package/src/server/storage/connection-retirement.js +21 -0
- package/src/server/storage/connection-store.d.ts +19 -0
- package/src/server/storage/connection-store.js +172 -0
- package/src/server/storage/node-runtime-database.js +3 -3
- package/src/server/storage/oauth-state-store.d.ts +12 -0
- package/src/server/storage/oauth-state-store.js +36 -0
- package/src/server/storage/{postgres-migrations.d.ts → postgres/migrations.d.ts} +2 -2
- package/src/server/storage/{postgres-migrations.js → postgres/migrations.js} +1 -1
- package/src/server/storage/postgres/runtime-store.d.ts +43 -0
- package/src/server/storage/{postgres-runtime-store.js → postgres/runtime-store.js} +62 -122
- package/src/server/storage/runtime-database.d.ts +4 -0
- package/src/server/storage/runtime-sql.d.ts +1 -1
- package/src/server/storage/runtime-sql.js +2 -1
- package/src/server/storage/runtime-store.d.ts +1 -0
- package/src/server/storage/runtime-token-service.d.ts +2 -0
- package/src/server/storage/runtime-token-service.js +3 -0
- package/src/server/storage/saas-project-store.d.ts +77 -0
- package/src/server/storage/saas-project-store.js +273 -0
- package/src/server/storage/{sqlite-runtime-store.d.ts → sqlite/runtime-store.d.ts} +22 -34
- package/src/server/storage/{sqlite-runtime-store.js → sqlite/runtime-store.js} +104 -142
- package/src/server/storage/trigger-store.d.ts +16 -0
- package/src/server/storage/trigger-store.js +96 -0
- package/src/triggers/common/config.d.ts +2 -0
- package/src/triggers/common/config.js +17 -0
- package/src/triggers/common/configOptions.d.ts +13 -0
- package/src/triggers/common/configOptions.js +1 -0
- package/src/triggers/common/encoding.d.ts +3 -0
- package/src/triggers/common/encoding.js +19 -0
- package/src/triggers/common/integration.d.ts +115 -0
- package/src/triggers/common/integration.js +31 -0
- package/src/triggers/common/json.d.ts +6 -0
- package/src/triggers/common/json.js +91 -0
- package/src/triggers/common/poll.d.ts +41 -0
- package/src/triggers/common/poll.js +15 -0
- package/src/triggers/common/proxy.d.ts +14 -0
- package/src/triggers/common/proxy.js +1 -0
- package/src/triggers/common/types.d.ts +42 -0
- package/src/triggers/common/types.js +1 -0
- package/src/triggers/maintenance.d.ts +40 -0
- package/src/triggers/maintenance.js +120 -0
- package/src/triggers/metadata.d.ts +8 -0
- package/src/triggers/metadata.js +1 -0
- package/src/triggers/request.d.ts +33 -0
- package/src/triggers/request.js +52 -0
- package/src/triggers/resources.d.ts +12 -0
- package/src/triggers/resources.js +121 -0
- package/src/triggers/signature.d.ts +4 -0
- package/src/triggers/signature.js +48 -0
- package/src/triggers/store.d.ts +29 -0
- package/src/triggers/store.js +1 -0
- package/src/triggers/subscriptions.d.ts +22 -0
- package/src/triggers/subscriptions.js +220 -0
- package/src/triggers/trigger-runner.d.ts +38 -0
- package/src/triggers/trigger-runner.js +183 -0
- package/assets/open-connector/catalog/apps/shopify_admin.json +0 -5423
- package/src/providers/shopify/runtime.d.ts +0 -14
- package/src/providers/shopify/scopes.d.ts +0 -3
- package/src/providers/shopify/scopes.js +0 -3
- package/src/providers/shopify_admin/executors.js +0 -37
- package/src/providers/shopify_admin/runtime.d.ts +0 -23
- package/src/providers/shopify_admin/runtime.js +0 -1486
- package/src/server/storage/postgres-runtime-store.d.ts +0 -39
- /package/src/providers/{shopify_admin → api_route}/executors.d.ts +0 -0
|
@@ -5,6 +5,7 @@ import { ActionPolicyService } from "../core/action-policy.js";
|
|
|
5
5
|
import { setEgressTrustedHosts, setPrivateNetworkAccessAllowed } from "../core/request.js";
|
|
6
6
|
import { ProviderLoader } from "../providers/provider-loader.js";
|
|
7
7
|
import { executorModules } from "../providers/registry.generated.js";
|
|
8
|
+
import { DEFAULT_OAUTH_CLOSE_DELAY_SECONDS } from "./api/oauth-completion-page.js";
|
|
8
9
|
import { createRuntimeJwtVerifier } from "./api/runtime-jwt.js";
|
|
9
10
|
import { createConnectApp } from "./connect-app.js";
|
|
10
11
|
import { getConnectorAssetDirectory } from "./connector-assets.js";
|
|
@@ -48,6 +49,9 @@ async function openRuntime(options) {
|
|
|
48
49
|
throw new Error("transitFiles.ttlSeconds must be a positive number of seconds.");
|
|
49
50
|
if (!Number.isFinite(maxBytes) || maxBytes <= 0)
|
|
50
51
|
throw new Error("transitFiles.maxBytes must be a positive number.");
|
|
52
|
+
const oauthCloseDelaySeconds = options.oauthCloseDelaySeconds ?? DEFAULT_OAUTH_CLOSE_DELAY_SECONDS;
|
|
53
|
+
if (!Number.isInteger(oauthCloseDelaySeconds) || oauthCloseDelaySeconds < 0)
|
|
54
|
+
throw new Error("oauthCloseDelaySeconds must be a non-negative integer of seconds.");
|
|
51
55
|
const assetDirectory = getConnectorAssetDirectory();
|
|
52
56
|
const assets = options.assets ?? {
|
|
53
57
|
catalogDir: join(assetDirectory, "catalog/apps"),
|
|
@@ -104,13 +108,15 @@ async function openRuntime(options) {
|
|
|
104
108
|
const tempDir = join(dataDir, "tmp/transit-files");
|
|
105
109
|
await transitFiles.cleanupExpired();
|
|
106
110
|
await cleanupStagedTransitFiles(tempDir, ttlSeconds * 1000);
|
|
107
|
-
const { app, runtimeAuthConfigured } = await createConnectApp({
|
|
111
|
+
const { app, runtimeAuthConfigured, saasCleanup, triggerMaintenance } = await createConnectApp({
|
|
108
112
|
catalog,
|
|
109
113
|
providerLoader: new ProviderLoader(executorModules),
|
|
114
|
+
providerHttpDispatch: options.providerHttpDispatch,
|
|
110
115
|
runtimeDatabase: database,
|
|
111
116
|
transitFiles,
|
|
112
117
|
uploadTransitFile: createNodeTransitFileUpload({ transitFiles, tempDir }),
|
|
113
118
|
publicOrigin,
|
|
119
|
+
configuredOrigin: options.publicOriginConfigured === false ? undefined : publicOrigin,
|
|
114
120
|
secretCodec,
|
|
115
121
|
adminToken: options.adminToken,
|
|
116
122
|
runtimeToken: options.runtimeToken,
|
|
@@ -119,7 +125,10 @@ async function openRuntime(options) {
|
|
|
119
125
|
allowedCustomOAuth: options.allowedCustomOAuth,
|
|
120
126
|
logger: options.logger,
|
|
121
127
|
serveDocumentation: options.apiReference ?? false,
|
|
128
|
+
oauthCloseDelaySeconds,
|
|
122
129
|
});
|
|
130
|
+
saasCleanup.start();
|
|
131
|
+
triggerMaintenance.start();
|
|
123
132
|
const shutdown = new AbortController();
|
|
124
133
|
const pending = new Set();
|
|
125
134
|
let closing;
|
|
@@ -142,7 +151,7 @@ async function openRuntime(options) {
|
|
|
142
151
|
if (!closing) {
|
|
143
152
|
closing = Promise.resolve().then(async () => {
|
|
144
153
|
shutdown.abort(new Error("Open Connector runtime is closing."));
|
|
145
|
-
await Promise.allSettled([...pending]);
|
|
154
|
+
await Promise.allSettled([...pending, saasCleanup.close(), triggerMaintenance.close()]);
|
|
146
155
|
try {
|
|
147
156
|
await database.close();
|
|
148
157
|
}
|
|
@@ -41,7 +41,11 @@ async function stageMultipartFile(request, path, maxBytes) {
|
|
|
41
41
|
parser = Busboy({
|
|
42
42
|
headers: { "content-type": contentType },
|
|
43
43
|
defParamCharset: "utf8",
|
|
44
|
-
|
|
44
|
+
// Busboy flags truncation when its counter *reaches* its limit, so give it
|
|
45
|
+
// one byte of headroom and judge the bytes actually written below. This
|
|
46
|
+
// also rejects an over-limit file under a fractional limit, where the
|
|
47
|
+
// counter never equals the limit and `truncated` would stay false.
|
|
48
|
+
limits: { fields: 0, files: 1, parts: 2, fileSize: maxBytes + 1 },
|
|
45
49
|
});
|
|
46
50
|
}
|
|
47
51
|
catch {
|
|
@@ -62,13 +66,13 @@ async function stageMultipartFile(request, path, maxBytes) {
|
|
|
62
66
|
}
|
|
63
67
|
const writer = createWriteStream(path, { flags: "wx" });
|
|
64
68
|
staged = pipeline(stream, writer).then(() => {
|
|
65
|
-
if (
|
|
69
|
+
if (writer.bytesWritten > maxBytes) {
|
|
66
70
|
throw new TransitFileError(413, "file_too_large", `Transit file must be ${maxBytes} bytes or smaller.`);
|
|
67
71
|
}
|
|
68
72
|
return {
|
|
69
73
|
path,
|
|
70
74
|
sizeBytes: writer.bytesWritten,
|
|
71
|
-
name: info.filename,
|
|
75
|
+
name: info.filename ?? "",
|
|
72
76
|
mimeType: info.mimeType,
|
|
73
77
|
};
|
|
74
78
|
});
|
|
@@ -52,11 +52,15 @@ export function uploadResult(publicOrigin, fileId, info) {
|
|
|
52
52
|
* ASCII-only form for clients that do not read `filename*`.
|
|
53
53
|
*/
|
|
54
54
|
export function contentDispositionForFileName(name) {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
// Metadata written before the write-time repair (or supplied by a caller)
|
|
56
|
+
// can still hold an unpaired surrogate. `encodeURIComponent` throws on it,
|
|
57
|
+
// which would fail every download for the whole lifetime of the file.
|
|
58
|
+
const repaired = name.toWellFormed();
|
|
59
|
+
const asciiName = repaired.replace(/[^\u0020-\u007e]/gu, "_").replace(/["\\]/g, "_");
|
|
60
|
+
if (!/[\u0080-\u{10ffff}]/u.test(repaired)) {
|
|
57
61
|
return `attachment; filename="${asciiName}"`;
|
|
58
62
|
}
|
|
59
|
-
return `attachment; filename="${asciiName}"; filename*=UTF-8''${encodeExtendedValue(
|
|
63
|
+
return `attachment; filename="${asciiName}"; filename*=UTF-8''${encodeExtendedValue(repaired)}`;
|
|
60
64
|
}
|
|
61
65
|
/** Percent-encode a file name as an RFC 8187 `ext-value`, which allows fewer literals than a URI component. */
|
|
62
66
|
function encodeExtendedValue(name) {
|
|
@@ -144,7 +148,9 @@ export function metadataKey(fileId) {
|
|
|
144
148
|
/** Trim a stored name and MIME type, substituting the matching fallback for a missing or blank value. */
|
|
145
149
|
export function normalizeDescriptor(input, fallback = { name: "file", mimeType: "application/octet-stream" }) {
|
|
146
150
|
return {
|
|
147
|
-
|
|
151
|
+
// Repair unpaired UTF-16 surrogates at the storage boundary so every
|
|
152
|
+
// backend and every later reader sees a well-formed name.
|
|
153
|
+
name: typeof input.name === "string" && input.name.trim() ? input.name.trim().toWellFormed() : fallback.name,
|
|
148
154
|
mimeType: typeof input.mimeType === "string" && input.mimeType.trim() ? input.mimeType.trim() : fallback.mimeType,
|
|
149
155
|
};
|
|
150
156
|
}
|
|
@@ -11,6 +11,9 @@ export declare class TransitFileService implements IStagedTransitFileService {
|
|
|
11
11
|
private readonly publicOrigin;
|
|
12
12
|
private readonly ttlMs;
|
|
13
13
|
readonly maxBytes: number;
|
|
14
|
+
private sweeping;
|
|
15
|
+
private followUp;
|
|
16
|
+
private lastSweepAt;
|
|
14
17
|
constructor(options: TransitFileOptions);
|
|
15
18
|
create(file: File): Promise<TransitFileUpload>;
|
|
16
19
|
createFromStream(file: TransitFileStream): Promise<TransitFileUpload>;
|
|
@@ -18,7 +21,22 @@ export declare class TransitFileService implements IStagedTransitFileService {
|
|
|
18
21
|
read(fileId: string): Promise<TransitFileRead>;
|
|
19
22
|
response(fileId: string): Promise<Response>;
|
|
20
23
|
delete(fileId: string): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Remove expired files and their side-cars. One sweep runs at a time (a
|
|
26
|
+
* caller arriving mid-sweep shares it), and the directory is walked in
|
|
27
|
+
* bounded batches, so its size never turns into that many concurrent
|
|
28
|
+
* filesystem requests on the heap.
|
|
29
|
+
*/
|
|
21
30
|
cleanupExpired(): Promise<void>;
|
|
31
|
+
private startSweep;
|
|
32
|
+
/**
|
|
33
|
+
* The write path's sweep: at most one every {@link sweepIntervalMs}, never
|
|
34
|
+
* awaited. Sweeping on every write made each upload walk the whole
|
|
35
|
+
* directory, so concurrent downloads into a store holding a day of files
|
|
36
|
+
* queued hundreds of thousands of `stat` calls and exhausted the heap.
|
|
37
|
+
*/
|
|
38
|
+
private sweepIfDue;
|
|
39
|
+
private sweep;
|
|
22
40
|
/** Resolve a live, unexpired file on disk together with its side-car metadata, or report it as missing. */
|
|
23
41
|
private locate;
|
|
24
42
|
private readMetadata;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { createReadStream, createWriteStream } from "node:fs";
|
|
2
|
-
import { mkdir,
|
|
2
|
+
import { mkdir, opendir, readFile, rename, stat, unlink, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { Readable } from "node:stream";
|
|
5
5
|
import { pipeline } from "node:stream/promises";
|
|
6
6
|
import { assertFileSize, assertSafeFileId, contentTypeFromFileId, isSafeFileId, normalizeDescriptor, randomHex, safeExtension, TransitFileError, transitFileRead, transitFileResponse, uploadResult, } from "./transit-file-store.js";
|
|
7
|
+
/** How often the write path may start a sweep of expired transit files. */
|
|
8
|
+
const sweepIntervalMs = 60_000;
|
|
9
|
+
/** How many directory entries a sweep stats at once. */
|
|
10
|
+
const sweepConcurrency = 64;
|
|
7
11
|
export class TransitFileService {
|
|
8
12
|
rootDir;
|
|
9
13
|
publicOrigin;
|
|
10
14
|
ttlMs;
|
|
11
15
|
maxBytes;
|
|
16
|
+
sweeping;
|
|
17
|
+
followUp;
|
|
18
|
+
lastSweepAt = Number.NEGATIVE_INFINITY;
|
|
12
19
|
constructor(options) {
|
|
13
20
|
this.rootDir = options.rootDir;
|
|
14
21
|
this.publicOrigin = options.publicOrigin;
|
|
@@ -29,7 +36,8 @@ export class TransitFileService {
|
|
|
29
36
|
});
|
|
30
37
|
try {
|
|
31
38
|
file.signal?.throwIfAborted();
|
|
32
|
-
|
|
39
|
+
this.sweepIfDue();
|
|
40
|
+
await mkdir(this.rootDir, { recursive: true });
|
|
33
41
|
const sizeBytes = await this.writeStream(file, tempPath);
|
|
34
42
|
file.signal?.throwIfAborted();
|
|
35
43
|
await writeFile(metadataPath(path), JSON.stringify(metadata), { flag: "wx", signal: file.signal });
|
|
@@ -47,7 +55,7 @@ export class TransitFileService {
|
|
|
47
55
|
}
|
|
48
56
|
async createFromPath(file) {
|
|
49
57
|
assertFileSize(file.sizeBytes, this.maxBytes);
|
|
50
|
-
|
|
58
|
+
this.sweepIfDue();
|
|
51
59
|
await mkdir(this.rootDir, { recursive: true });
|
|
52
60
|
const fileId = `${randomHex(16)}${safeExtension(file.name)}`;
|
|
53
61
|
const path = join(this.rootDir, fileId);
|
|
@@ -82,21 +90,74 @@ export class TransitFileService {
|
|
|
82
90
|
return false;
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Remove expired files and their side-cars. One sweep runs at a time (a
|
|
95
|
+
* caller arriving mid-sweep shares it), and the directory is walked in
|
|
96
|
+
* bounded batches, so its size never turns into that many concurrent
|
|
97
|
+
* filesystem requests on the heap.
|
|
98
|
+
*/
|
|
99
|
+
cleanupExpired() {
|
|
100
|
+
if (this.sweeping) {
|
|
101
|
+
// The running sweep may have read the directory before this call:
|
|
102
|
+
// run one more after it, shared by every caller that arrives meanwhile.
|
|
103
|
+
if (!this.followUp) {
|
|
104
|
+
const next = () => {
|
|
105
|
+
this.followUp = undefined;
|
|
106
|
+
return this.startSweep();
|
|
107
|
+
};
|
|
108
|
+
this.followUp = this.sweeping.then(next, next);
|
|
109
|
+
}
|
|
110
|
+
return this.followUp;
|
|
111
|
+
}
|
|
112
|
+
return this.startSweep();
|
|
113
|
+
}
|
|
114
|
+
startSweep() {
|
|
115
|
+
if (this.sweeping) {
|
|
116
|
+
return this.sweeping;
|
|
117
|
+
}
|
|
118
|
+
this.lastSweepAt = Date.now();
|
|
119
|
+
this.sweeping = this.sweep().finally(() => {
|
|
120
|
+
this.sweeping = undefined;
|
|
121
|
+
});
|
|
122
|
+
return this.sweeping;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The write path's sweep: at most one every {@link sweepIntervalMs}, never
|
|
126
|
+
* awaited. Sweeping on every write made each upload walk the whole
|
|
127
|
+
* directory, so concurrent downloads into a store holding a day of files
|
|
128
|
+
* queued hundreds of thousands of `stat` calls and exhausted the heap.
|
|
129
|
+
*/
|
|
130
|
+
sweepIfDue() {
|
|
131
|
+
if (this.sweeping || Date.now() - this.lastSweepAt < sweepIntervalMs) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
void this.cleanupExpired().catch(() => undefined);
|
|
135
|
+
}
|
|
136
|
+
async sweep() {
|
|
86
137
|
await mkdir(this.rootDir, { recursive: true });
|
|
87
138
|
const cutoff = Date.now() - this.ttlMs;
|
|
88
|
-
|
|
89
|
-
|
|
139
|
+
let batch = [];
|
|
140
|
+
const flush = async () => {
|
|
141
|
+
await Promise.all(batch.map(async (name) => {
|
|
142
|
+
const path = join(this.rootDir, name);
|
|
143
|
+
const stats = await stat(path).catch(() => undefined);
|
|
144
|
+
if (stats && stats.mtimeMs < cutoff) {
|
|
145
|
+
await unlink(path).catch(() => undefined);
|
|
146
|
+
await unlink(metadataPath(path)).catch(() => undefined);
|
|
147
|
+
}
|
|
148
|
+
}));
|
|
149
|
+
batch = [];
|
|
150
|
+
};
|
|
151
|
+
for await (const entry of await opendir(this.rootDir)) {
|
|
90
152
|
if (!entry.isFile() || !isManagedFileName(entry.name)) {
|
|
91
|
-
|
|
153
|
+
continue;
|
|
92
154
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
await unlink(path).catch(() => undefined);
|
|
97
|
-
await unlink(metadataPath(path)).catch(() => undefined);
|
|
155
|
+
batch.push(entry.name);
|
|
156
|
+
if (batch.length >= sweepConcurrency) {
|
|
157
|
+
await flush();
|
|
98
158
|
}
|
|
99
|
-
}
|
|
159
|
+
}
|
|
160
|
+
await flush();
|
|
100
161
|
}
|
|
101
162
|
/** Resolve a live, unexpired file on disk together with its side-car metadata, or report it as missing. */
|
|
102
163
|
async locate(fileId) {
|
|
@@ -130,13 +191,22 @@ export class TransitFileService {
|
|
|
130
191
|
async writeStream(file, tempPath) {
|
|
131
192
|
let sizeBytes = 0;
|
|
132
193
|
const maxBytes = this.maxBytes;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
194
|
+
const source = Readable.fromWeb(file.body);
|
|
195
|
+
const destination = createWriteStream(tempPath, { flags: "wx" });
|
|
196
|
+
// Pipeline can reject while the file is still opening. Wait for close before unlinking it.
|
|
197
|
+
const closed = new Promise((resolve) => destination.once("close", resolve));
|
|
198
|
+
try {
|
|
199
|
+
await pipeline(source, async function* (source) {
|
|
200
|
+
for await (const chunk of source) {
|
|
201
|
+
sizeBytes += chunk.byteLength;
|
|
202
|
+
assertFileSize(sizeBytes, maxBytes);
|
|
203
|
+
yield chunk;
|
|
204
|
+
}
|
|
205
|
+
}, destination, { signal: file.signal });
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
await closed;
|
|
209
|
+
}
|
|
140
210
|
return sizeBytes;
|
|
141
211
|
}
|
|
142
212
|
}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import type { CatalogStore } from "../../catalog-store.ts";
|
|
2
2
|
import type { ConnectionService } from "../../connection-service.ts";
|
|
3
3
|
import type { ActionPolicySnapshot } from "../../core/action-policy.ts";
|
|
4
|
+
import type { ProviderHttpDispatchOptions } from "../../core/provider-http-dispatch.ts";
|
|
4
5
|
import type { RuntimeLogger, ProxyResponse } from "../../core/types.ts";
|
|
5
6
|
import type { IProviderLoader } from "../../providers/provider-loader.ts";
|
|
6
|
-
|
|
7
|
+
import type { SaasExecutionService } from "../../saas/saas-execution-service.ts";
|
|
8
|
+
export type ProxyFailureStatus = 400 | 402 | 403 | 404 | 409 | 413 | 429 | 500 | 501 | 502 | 503 | 504;
|
|
7
9
|
export interface ProxyRunnerOptions {
|
|
10
|
+
providerHttpDispatch?: ProviderHttpDispatchOptions;
|
|
8
11
|
catalog: CatalogStore;
|
|
9
12
|
providerLoader: IProviderLoader;
|
|
10
13
|
connections: ConnectionService;
|
|
11
14
|
logger?: RuntimeLogger;
|
|
15
|
+
saas?: SaasExecutionService;
|
|
12
16
|
}
|
|
13
17
|
export interface RunProxyInput {
|
|
14
18
|
service: string;
|
|
15
19
|
input: unknown;
|
|
16
20
|
connectionName?: string;
|
|
21
|
+
connectionId?: string;
|
|
17
22
|
policy: ActionPolicySnapshot;
|
|
18
23
|
/** Cancellation signal from the HTTP request, handed to the provider proxy executor. */
|
|
19
24
|
signal?: AbortSignal;
|
|
@@ -21,6 +26,7 @@ export interface RunProxyInput {
|
|
|
21
26
|
export type ProxyRunResult = {
|
|
22
27
|
ok: true;
|
|
23
28
|
response: ProxyResponse;
|
|
29
|
+
meta?: Record<string, unknown>;
|
|
24
30
|
} | ProxyRunFailure;
|
|
25
31
|
export interface ProxyRunFailure {
|
|
26
32
|
ok: false;
|
|
@@ -34,6 +40,7 @@ export declare class ProxyRunner {
|
|
|
34
40
|
private readonly options;
|
|
35
41
|
constructor(options: ProxyRunnerOptions);
|
|
36
42
|
run(input: RunProxyInput): Promise<ProxyRunResult>;
|
|
43
|
+
private runProxy;
|
|
37
44
|
private readProxyRequestInput;
|
|
38
45
|
private assertRelativeEndpoint;
|
|
39
46
|
private hasPathTraversalSegment;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ConnectionError } from "../../connection-service.js";
|
|
2
2
|
import { optionalInteger, optionalRecord, requiredRecord, requiredString } from "../../core/cast.js";
|
|
3
|
+
import { withProviderHttpDispatch } from "../../core/provider-http-dispatch.js";
|
|
4
|
+
import { ProviderDispatchRequestError, toProviderExecutionError, withProviderHttpDispatchResult, } from "../../providers/provider-runtime.js";
|
|
5
|
+
import { SaasError } from "../../saas/saas-client.js";
|
|
3
6
|
import { mapConnectionErrorStatus } from "../api/runtime-api.js";
|
|
4
7
|
class ProxyInputError extends Error {
|
|
5
8
|
}
|
|
@@ -10,6 +13,10 @@ export class ProxyRunner {
|
|
|
10
13
|
this.options = options;
|
|
11
14
|
}
|
|
12
15
|
async run(input) {
|
|
16
|
+
const provider = this.options.catalog.providers.find((candidate) => candidate.service === input.service);
|
|
17
|
+
return withProviderHttpDispatch({ operation: "proxy", service: provider?.service }, () => this.runProxy(input), this.options.providerHttpDispatch);
|
|
18
|
+
}
|
|
19
|
+
async runProxy(input) {
|
|
13
20
|
const provider = this.options.catalog.providers.find((candidate) => candidate.service === input.service);
|
|
14
21
|
if (!provider) {
|
|
15
22
|
return {
|
|
@@ -30,29 +37,6 @@ export class ProxyRunner {
|
|
|
30
37
|
meta: { service: provider.service },
|
|
31
38
|
};
|
|
32
39
|
}
|
|
33
|
-
let executor;
|
|
34
|
-
try {
|
|
35
|
-
executor = await this.options.providerLoader.loadProxyExecutor(provider.service, provider.displayName);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
this.options.logger?.warn({ service: provider.service, errorCode: "internal_error" }, "proxy request failed");
|
|
39
|
-
return {
|
|
40
|
-
ok: false,
|
|
41
|
-
status: 500,
|
|
42
|
-
errorCode: "internal_error",
|
|
43
|
-
message: "Proxy request failed unexpectedly.",
|
|
44
|
-
meta: { service: provider.service },
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (!executor) {
|
|
48
|
-
return {
|
|
49
|
-
ok: false,
|
|
50
|
-
status: 501,
|
|
51
|
-
errorCode: "proxy_not_supported",
|
|
52
|
-
message: `Proxy execution is not supported for ${provider.service}.`,
|
|
53
|
-
meta: { service: provider.service },
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
40
|
const request = this.readProxyRequestInput(input.input);
|
|
57
41
|
if (!request.ok) {
|
|
58
42
|
return request;
|
|
@@ -64,8 +48,9 @@ export class ProxyRunner {
|
|
|
64
48
|
connectionName: input.connectionName,
|
|
65
49
|
};
|
|
66
50
|
const startedAtMs = Date.now();
|
|
51
|
+
let executionId;
|
|
67
52
|
try {
|
|
68
|
-
const connection = await this.options.connections.getConnectionSummary(provider.service, input.connectionName);
|
|
53
|
+
const connection = await this.options.connections.getConnectionSummary(provider.service, input.connectionName, input.connectionId);
|
|
69
54
|
const connectionDecision = connection?.authType === "no_auth" ? undefined : input.policy.evaluateConnection(connection?.id);
|
|
70
55
|
if (connectionDecision && !connectionDecision.allowed) {
|
|
71
56
|
return {
|
|
@@ -76,12 +61,65 @@ export class ProxyRunner {
|
|
|
76
61
|
meta: { service: provider.service },
|
|
77
62
|
};
|
|
78
63
|
}
|
|
64
|
+
const target = await this.options.connections.resolveForExecution(provider.service, input.connectionName, input.connectionId);
|
|
65
|
+
const targetDecision = target.summary?.authType === "no_auth" ? undefined : input.policy.evaluateConnection(target.summary?.id);
|
|
66
|
+
if (targetDecision && !targetDecision.allowed)
|
|
67
|
+
return {
|
|
68
|
+
ok: false,
|
|
69
|
+
status: 403,
|
|
70
|
+
errorCode: targetDecision.code,
|
|
71
|
+
message: targetDecision.message,
|
|
72
|
+
meta: { service: provider.service },
|
|
73
|
+
};
|
|
79
74
|
this.options.logger?.info(logContext, "proxy request started");
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
if (target.kind === "saas") {
|
|
76
|
+
executionId = crypto.randomUUID();
|
|
77
|
+
input.signal?.throwIfAborted();
|
|
78
|
+
if (!this.options.saas)
|
|
79
|
+
throw new SaasError("oauth_source_unavailable", "SaaS execution is unavailable.", 503);
|
|
80
|
+
const { alias: _alias, connectionName: _connectionName, ...remoteRequest } = optionalRecord(input.input);
|
|
81
|
+
remoteRequest.method = request.input.method;
|
|
82
|
+
const remote = await this.options.saas.executeProxy(target.reference, provider.service, remoteRequest, input.signal);
|
|
83
|
+
input.signal?.throwIfAborted();
|
|
84
|
+
this.options.logger?.info({
|
|
85
|
+
...logContext,
|
|
86
|
+
executionId,
|
|
87
|
+
remoteExecutionId: remote.executionId,
|
|
88
|
+
durationMs: Date.now() - startedAtMs,
|
|
89
|
+
status: remote.response.status,
|
|
90
|
+
}, "proxy request completed");
|
|
91
|
+
return {
|
|
92
|
+
ok: true,
|
|
93
|
+
response: remote.response,
|
|
94
|
+
meta: { service: provider.service, executionId, remoteExecutionId: remote.executionId },
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (target.kind === "marketplace")
|
|
98
|
+
return {
|
|
99
|
+
ok: false,
|
|
100
|
+
status: 501,
|
|
101
|
+
errorCode: "proxy_not_supported",
|
|
102
|
+
message: "Marketplace connections do not support proxy execution.",
|
|
103
|
+
meta: { service: provider.service },
|
|
104
|
+
};
|
|
105
|
+
const executor = await this.options.providerLoader.loadProxyExecutor(provider.service, provider.displayName);
|
|
106
|
+
if (!executor)
|
|
107
|
+
return {
|
|
108
|
+
ok: false,
|
|
109
|
+
status: 501,
|
|
110
|
+
errorCode: "proxy_not_supported",
|
|
111
|
+
message: `Proxy execution is not supported for ${provider.service}.`,
|
|
112
|
+
meta: { service: provider.service },
|
|
113
|
+
};
|
|
114
|
+
const result = await withProviderHttpDispatchResult({
|
|
115
|
+
operation: "proxy",
|
|
116
|
+
service: provider.service,
|
|
117
|
+
connectionId: target.summary?.id,
|
|
118
|
+
connectionName: target.summary?.connectionName,
|
|
119
|
+
}, () => executor(request.input, {
|
|
120
|
+
getCredential: target.getCredential,
|
|
83
121
|
signal: input.signal,
|
|
84
|
-
});
|
|
122
|
+
}), this.options.providerHttpDispatch);
|
|
85
123
|
const durationMs = Date.now() - startedAtMs;
|
|
86
124
|
if (result.ok) {
|
|
87
125
|
this.options.logger?.info({ ...logContext, durationMs, status: result.response.status }, "proxy request completed");
|
|
@@ -103,6 +141,35 @@ export class ProxyRunner {
|
|
|
103
141
|
}
|
|
104
142
|
catch (error) {
|
|
105
143
|
const durationMs = Date.now() - startedAtMs;
|
|
144
|
+
if (executionId && input.signal?.aborted)
|
|
145
|
+
return {
|
|
146
|
+
ok: false,
|
|
147
|
+
status: 400,
|
|
148
|
+
errorCode: "execution_cancelled",
|
|
149
|
+
message: "Proxy execution was cancelled.",
|
|
150
|
+
meta: { service: provider.service, executionId },
|
|
151
|
+
};
|
|
152
|
+
if (error instanceof SaasError) {
|
|
153
|
+
this.options.logger?.warn({ ...logContext, durationMs, executionId, errorCode: error.code, remoteExecutionId: error.remoteExecutionId }, "proxy request failed");
|
|
154
|
+
return {
|
|
155
|
+
ok: false,
|
|
156
|
+
status: error.status,
|
|
157
|
+
errorCode: error.code,
|
|
158
|
+
message: error.message,
|
|
159
|
+
data: error.retryAfter ? { details: { retryAfter: error.retryAfter } } : undefined,
|
|
160
|
+
meta: { service: provider.service, executionId, remoteExecutionId: error.remoteExecutionId },
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (error instanceof ProviderDispatchRequestError) {
|
|
164
|
+
return {
|
|
165
|
+
ok: false,
|
|
166
|
+
status: 429,
|
|
167
|
+
errorCode: "rate_limited",
|
|
168
|
+
message: error.message,
|
|
169
|
+
data: toProviderExecutionError(error, error.message).error?.details,
|
|
170
|
+
meta: { service: provider.service },
|
|
171
|
+
};
|
|
172
|
+
}
|
|
106
173
|
if (error instanceof ConnectionError) {
|
|
107
174
|
const missingConnectionDecision = error.code === "connection_not_found" ? input.policy.evaluateConnection() : undefined;
|
|
108
175
|
if (missingConnectionDecision && !missingConnectionDecision.allowed) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StoredConnection } from "../../connection-service.ts";
|
|
1
|
+
import type { StoredConnection, StoredSaasConnection } from "../../connection-service.ts";
|
|
2
2
|
import type { ResolvedCredential } from "../../core/types.ts";
|
|
3
3
|
import type { OAuthAuthorizationState } from "../../oauth/oauth-flow-service.ts";
|
|
4
4
|
import type { ISecretCodec } from "../secrets/secret-codec-core.ts";
|
|
@@ -26,6 +26,35 @@ export interface RequestStatement {
|
|
|
26
26
|
sql: string;
|
|
27
27
|
values: (string | number | null)[];
|
|
28
28
|
}
|
|
29
|
+
export interface PendingSaasRequest {
|
|
30
|
+
connectionRequestId: string;
|
|
31
|
+
connectionId: string;
|
|
32
|
+
owner: string;
|
|
33
|
+
service: string;
|
|
34
|
+
connectionName: string;
|
|
35
|
+
managedProjectId: string;
|
|
36
|
+
providerConfigId: string;
|
|
37
|
+
externalUserId: string;
|
|
38
|
+
createdAt: string;
|
|
39
|
+
expiresAt: string;
|
|
40
|
+
returnUri?: string;
|
|
41
|
+
target?: Pick<StoredConnection, "id" | "revision">;
|
|
42
|
+
comment?: string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface SaasRequestLease {
|
|
45
|
+
pending: PendingSaasRequest;
|
|
46
|
+
leaseId: string;
|
|
47
|
+
phase: "creating" | "pending" | "candidate";
|
|
48
|
+
remoteRequestId: string | null;
|
|
49
|
+
candidate?: SaasCandidate;
|
|
50
|
+
pollAttempts: number;
|
|
51
|
+
}
|
|
52
|
+
export interface SaasCandidate {
|
|
53
|
+
connectedAccountId: string;
|
|
54
|
+
profile: StoredSaasConnection["profile"];
|
|
55
|
+
status: StoredSaasConnection["status"];
|
|
56
|
+
comment: string | null;
|
|
57
|
+
}
|
|
29
58
|
/** Executes all statements atomically; each result contains its RETURNING/SELECT rows. */
|
|
30
59
|
export type RequestTransaction = (statements: RequestStatement[]) => Promise<RuntimeRow[][]>;
|
|
31
60
|
/** Shared SQL lifecycle for SQLite, PostgreSQL and D1. Secrets use the runtime's codec. */
|
|
@@ -38,4 +67,15 @@ export declare class ConnectionRequestStore {
|
|
|
38
67
|
claim(state: string): Promise<PendingConnectionRequest | undefined>;
|
|
39
68
|
fail(id: string, errorCode: string, errorMessage: string): Promise<void>;
|
|
40
69
|
complete(pending: PendingConnectionRequest, credential: ResolvedCredential, signal?: AbortSignal): Promise<string | undefined>;
|
|
70
|
+
private retireRequests;
|
|
71
|
+
createSaas(pending: PendingSaasRequest): Promise<SaasRequestLease>;
|
|
72
|
+
claimSaas(id: string, owner: string, now?: number): Promise<SaasRequestLease | undefined>;
|
|
73
|
+
saveSaasRequest(lease: SaasRequestLease, remoteRequestId: string, expiresAt?: string): Promise<boolean>;
|
|
74
|
+
saveSaasCandidate(lease: SaasRequestLease, candidate: SaasCandidate): Promise<boolean>;
|
|
75
|
+
releaseSaas(lease: SaasRequestLease, nextPollAt: number, failed?: boolean): Promise<boolean>;
|
|
76
|
+
failSaas(lease: SaasRequestLease, code: string, message: string): Promise<boolean>;
|
|
77
|
+
getSaasReturnUri(id: string, owner: string): Promise<string | undefined>;
|
|
78
|
+
cancelSaas(id: string, owner: string): Promise<void>;
|
|
79
|
+
expireSaas(now?: number): Promise<void>;
|
|
80
|
+
completeSaas(lease: SaasRequestLease): Promise<"connected" | "conflict" | "lease_lost">;
|
|
41
81
|
}
|