@hasna/connectors 1.4.5 → 1.4.6
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 +57 -15
- package/bin/index.js +1891 -1526
- package/bin/mcp.js +610 -307
- package/bin/serve.js +800 -1156
- package/connectors/3scribe/package.json +1 -1
- package/connectors/7todos/package.json +1 -1
- package/connectors/ably/package.json +1 -1
- package/connectors/abstract/package.json +1 -1
- package/connectors/abuselpdb/package.json +1 -1
- package/connectors/accelo/package.json +1 -1
- package/connectors/accredible/package.json +1 -1
- package/connectors/accurai/package.json +1 -1
- package/connectors/accuranker/package.json +1 -1
- package/connectors/acquire/package.json +1 -1
- package/connectors/actionnetwork/package.json +1 -1
- package/connectors/activecampaign/package.json +1 -1
- package/connectors/activetrail/package.json +1 -1
- package/connectors/adalo/package.json +1 -1
- package/connectors/adobe/package.json +1 -1
- package/connectors/adroll/package.json +1 -1
- package/connectors/affinity/package.json +1 -1
- package/connectors/agent/package.json +1 -1
- package/connectors/agilecrm/package.json +1 -1
- package/connectors/aiagenttool/package.json +1 -1
- package/connectors/airbrake/package.json +1 -1
- package/connectors/airnow/package.json +1 -1
- package/connectors/airtable/package.json +1 -1
- package/connectors/airtop/package.json +1 -1
- package/connectors/aitableai/package.json +1 -1
- package/connectors/alchemy/package.json +1 -1
- package/connectors/alerty/package.json +1 -1
- package/connectors/alienvault/package.json +1 -1
- package/connectors/alphamoon/package.json +1 -1
- package/connectors/alttextai/package.json +1 -1
- package/connectors/amadeus/package.json +1 -1
- package/connectors/amazon/package.json +1 -1
- package/connectors/amilia/package.json +1 -1
- package/connectors/amplitude/package.json +1 -1
- package/connectors/amqpsender/package.json +1 -1
- package/connectors/announcekit/package.json +1 -1
- package/connectors/anthropic/package.json +1 -1
- package/connectors/anyscale/package.json +1 -1
- package/connectors/apiary/package.json +1 -1
- package/connectors/apiflash/package.json +1 -1
- package/connectors/apitemplateio/package.json +1 -1
- package/connectors/apptivegrid/package.json +1 -1
- package/connectors/arxiv/package.json +1 -1
- package/connectors/asana/package.json +1 -1
- package/connectors/assemblyai/package.json +1 -1
- package/connectors/auth0/package.json +1 -1
- package/connectors/autom/package.json +1 -1
- package/connectors/automizy/package.json +1 -1
- package/connectors/autopilot/package.json +1 -1
- package/connectors/aws/package.json +1 -1
- package/connectors/awscognito/package.json +1 -1
- package/connectors/azureaisearchvectorstore/package.json +1 -1
- package/connectors/azurecosmosdb/package.json +1 -1
- package/connectors/azureopenaichatmodel/package.json +1 -1
- package/connectors/azurestorage/package.json +1 -1
- package/connectors/badgermaps/package.json +1 -1
- package/connectors/bamboohr/package.json +1 -1
- package/connectors/bandwidth/package.json +1 -1
- package/connectors/bannerbear/package.json +1 -1
- package/connectors/baserow/package.json +1 -1
- package/connectors/baseten/package.json +1 -1
- package/connectors/beeminder/package.json +1 -1
- package/connectors/benchmarkemail/package.json +1 -1
- package/connectors/betterproposals/package.json +1 -1
- package/connectors/bigcartel/package.json +1 -1
- package/connectors/bigdatacloud/package.json +1 -1
- package/connectors/bigml/package.json +1 -1
- package/connectors/bitly/package.json +1 -1
- package/connectors/bitrix24/package.json +1 -1
- package/connectors/bitwarden/package.json +1 -1
- package/connectors/blaze/package.json +1 -1
- package/connectors/blockchainexchange/package.json +1 -1
- package/connectors/bloock/package.json +1 -1
- package/connectors/bluesky/package.json +1 -1
- package/connectors/bot9/package.json +1 -1
- package/connectors/botbaba/package.json +1 -1
- package/connectors/botifier/package.json +1 -1
- package/connectors/botiumbox/package.json +1 -1
- package/connectors/botsonic/package.json +1 -1
- package/connectors/botstar/package.json +1 -1
- package/connectors/box/package.json +1 -1
- package/connectors/brainpodai/package.json +1 -1
- package/connectors/brandblast/package.json +1 -1
- package/connectors/brandfetch/package.json +1 -1
- package/connectors/brandmentions/package.json +1 -1
- package/connectors/brandsight/package.json +1 -1
- package/connectors/breezyhr/package.json +1 -1
- package/connectors/brevo/package.json +1 -1
- package/connectors/brex/package.json +1 -1
- package/connectors/browseai/package.json +1 -1
- package/connectors/browserless/package.json +1 -1
- package/connectors/browserstack/package.json +1 -1
- package/connectors/browseruse/package.json +1 -1
- package/connectors/bubble/package.json +1 -1
- package/connectors/bugbug/package.json +1 -1
- package/connectors/bugfender/package.json +1 -1
- package/connectors/bugherd/package.json +1 -1
- package/connectors/bugpilot/package.json +1 -1
- package/connectors/bugreplay/package.json +1 -1
- package/connectors/bugshot/package.json +1 -1
- package/connectors/buildkite/package.json +1 -1
- package/connectors/bunnycdn/package.json +1 -1
- package/connectors/calendarhero/package.json +1 -1
- package/connectors/calendly/package.json +1 -1
- package/connectors/canvas/package.json +1 -1
- package/connectors/capsule/package.json +1 -1
- package/connectors/carbonblack/package.json +1 -1
- package/connectors/cerebras/package.json +1 -1
- package/connectors/chaindesk/package.json +1 -1
- package/connectors/chargebee/package.json +1 -1
- package/connectors/chargeover/package.json +1 -1
- package/connectors/chargify/package.json +1 -1
- package/connectors/chatbase/package.json +1 -1
- package/connectors/chatling/package.json +1 -1
- package/connectors/chatmasters/package.json +1 -1
- package/connectors/chatrace/package.json +1 -1
- package/connectors/chatsonic/package.json +1 -1
- package/connectors/chekhub/package.json +1 -1
- package/connectors/chromavectorstore/package.json +1 -1
- package/connectors/circleci/package.json +1 -1
- package/connectors/ciscomeraki/package.json +1 -1
- package/connectors/ciscosecureendpoint/package.json +1 -1
- package/connectors/ciscoumbrella/package.json +1 -1
- package/connectors/ciscowebex/package.json +1 -1
- package/connectors/citrixadc/package.json +1 -1
- package/connectors/clappia/package.json +1 -1
- package/connectors/clarifai/package.json +1 -1
- package/connectors/clearbit/package.json +1 -1
- package/connectors/cleverreach/package.json +1 -1
- package/connectors/clickbank/package.json +1 -1
- package/connectors/clicksendsms/package.json +1 -1
- package/connectors/clickup/package.json +1 -1
- package/connectors/clockify/package.json +1 -1
- package/connectors/cloozo/package.json +1 -1
- package/connectors/cloud66/package.json +1 -1
- package/connectors/cloudboost/package.json +1 -1
- package/connectors/cloudconvert/package.json +1 -1
- package/connectors/cloudflare/package.json +1 -1
- package/connectors/cloudflare-workers/package.json +1 -1
- package/connectors/cloudlayer/package.json +1 -1
- package/connectors/cloudshare/package.json +1 -1
- package/connectors/cloze/package.json +1 -1
- package/connectors/cockpit/package.json +1 -1
- package/connectors/coda/package.json +1 -1
- package/connectors/codeclimate/package.json +1 -1
- package/connectors/codefresh/package.json +1 -1
- package/connectors/cody/package.json +1 -1
- package/connectors/cohere/package.json +1 -1
- package/connectors/coinbase/package.json +1 -1
- package/connectors/coingecko/package.json +1 -1
- package/connectors/collegefootballdata/package.json +1 -1
- package/connectors/configcat/package.json +1 -1
- package/connectors/confluence/package.json +1 -1
- package/connectors/confluent/package.json +1 -1
- package/connectors/connect-twocaptcha/package.json +1 -1
- package/connectors/connect-voxel-energy/package.json +1 -1
- package/connectors/contactout/package.json +1 -1
- package/connectors/contentful/package.json +1 -1
- package/connectors/convertapi/package.json +1 -1
- package/connectors/convertkit/package.json +1 -1
- package/connectors/convi/package.json +1 -1
- package/connectors/copper/package.json +1 -1
- package/connectors/copyai/package.json +1 -1
- package/connectors/corsizio/package.json +1 -1
- package/connectors/cortex/package.json +1 -1
- package/connectors/cradlai/package.json +1 -1
- package/connectors/craftdraft/package.json +1 -1
- package/connectors/cratedb/package.json +1 -1
- package/connectors/crisp/package.json +1 -1
- package/connectors/cronly/package.json +1 -1
- package/connectors/crossmint/package.json +1 -1
- package/connectors/crowddev/package.json +1 -1
- package/connectors/crowdin/package.json +1 -1
- package/connectors/crowdpower/package.json +1 -1
- package/connectors/crowdstrike/package.json +1 -1
- package/connectors/cryptolens/package.json +1 -1
- package/connectors/currents/package.json +1 -1
- package/connectors/customerio/package.json +1 -1
- package/connectors/customeriq/package.json +1 -1
- package/connectors/daffy/package.json +1 -1
- package/connectors/danteai/package.json +1 -1
- package/connectors/darkskyapi/package.json +1 -1
- package/connectors/dasha/package.json +1 -1
- package/connectors/databox/package.json +1 -1
- package/connectors/databricks/package.json +1 -1
- package/connectors/datadog/package.json +1 -1
- package/connectors/datarobot/package.json +1 -1
- package/connectors/datasoap/package.json +1 -1
- package/connectors/datumbox/package.json +1 -1
- package/connectors/dayschedule/package.json +1 -1
- package/connectors/deepgram/package.json +1 -1
- package/connectors/deepinfra/package.json +1 -1
- package/connectors/deepl/package.json +1 -1
- package/connectors/deepseek/package.json +1 -1
- package/connectors/demio/package.json +1 -1
- package/connectors/descript/package.json +1 -1
- package/connectors/detrack/package.json +1 -1
- package/connectors/devcycle/package.json +1 -1
- package/connectors/dhl/package.json +1 -1
- package/connectors/dialzara/package.json +1 -1
- package/connectors/diddoai/package.json +1 -1
- package/connectors/diffy/package.json +1 -1
- package/connectors/digicert/package.json +1 -1
- package/connectors/digitalocean/package.json +1 -1
- package/connectors/discord/package.json +1 -1
- package/connectors/discourse/package.json +1 -1
- package/connectors/disqus/package.json +1 -1
- package/connectors/dockcerts/package.json +1 -1
- package/connectors/docker/package.json +1 -1
- package/connectors/docparser/package.json +1 -1
- package/connectors/docsbotai/package.json +1 -1
- package/connectors/docupilot/package.json +1 -1
- package/connectors/docusign/package.json +1 -1
- package/connectors/docuwriter/package.json +1 -1
- package/connectors/dokan/package.json +1 -1
- package/connectors/domo/package.json +1 -1
- package/connectors/draftable/package.json +1 -1
- package/connectors/drift/package.json +1 -1
- package/connectors/dropbox/package.json +1 -1
- package/connectors/dropcontact/package.json +1 -1
- package/connectors/droxy/package.json +1 -1
- package/connectors/dynatrace/package.json +1 -1
- package/connectors/e2b/package.json +1 -1
- package/connectors/eartho/package.json +1 -1
- package/connectors/easyship/package.json +1 -1
- package/connectors/echowin/package.json +1 -1
- package/connectors/ecwid/package.json +1 -1
- package/connectors/edenai/package.json +1 -1
- package/connectors/egoi/package.json +1 -1
- package/connectors/elasticsearch/package.json +1 -1
- package/connectors/elasticsecurity/package.json +1 -1
- package/connectors/elevenlabs/package.json +1 -1
- package/connectors/elmah/package.json +1 -1
- package/connectors/embedai/package.json +1 -1
- package/connectors/emelia/package.json +1 -1
- package/connectors/empsing/package.json +1 -1
- package/connectors/engati/package.json +1 -1
- package/connectors/enormail/package.json +1 -1
- package/connectors/enterpret/package.json +1 -1
- package/connectors/envoy/package.json +1 -1
- package/connectors/epo/package.json +1 -1
- package/connectors/erpnext/package.json +1 -1
- package/connectors/esendex/package.json +1 -1
- package/connectors/evervault/package.json +1 -1
- package/connectors/evolphinzoom/package.json +1 -1
- package/connectors/exa/package.json +1 -1
- package/connectors/f5bigip/package.json +1 -1
- package/connectors/fal/package.json +1 -1
- package/connectors/faraday/package.json +1 -1
- package/connectors/faros/package.json +1 -1
- package/connectors/fastbots/package.json +1 -1
- package/connectors/fathom/package.json +1 -1
- package/connectors/figma/package.json +1 -1
- package/connectors/filemaker/package.json +1 -1
- package/connectors/filescan/package.json +1 -1
- package/connectors/firecrawl/README.md +10 -0
- package/connectors/firecrawl/package.json +1 -1
- package/connectors/firecrawl/src/cli/extraction.test.ts +46 -0
- package/connectors/firecrawl/src/cli/extraction.ts +36 -0
- package/connectors/firecrawl/src/cli/index.ts +5 -0
- package/connectors/fireworks/package.json +1 -1
- package/connectors/firmao/package.json +1 -1
- package/connectors/fitbit/package.json +1 -1
- package/connectors/flagship/package.json +1 -1
- package/connectors/float/package.json +1 -1
- package/connectors/flotiq/package.json +1 -1
- package/connectors/flow/package.json +1 -1
- package/connectors/fluentsupport/package.json +1 -1
- package/connectors/focuster/package.json +1 -1
- package/connectors/formcarry/package.json +1 -1
- package/connectors/formdesk/package.json +1 -1
- package/connectors/formsite/package.json +1 -1
- package/connectors/formsonfire/package.json +1 -1
- package/connectors/formstackdocuments/package.json +1 -1
- package/connectors/fortinetfortigate/package.json +1 -1
- package/connectors/foursquare/package.json +1 -1
- package/connectors/freedictionary/package.json +1 -1
- package/connectors/freshdesk/package.json +1 -1
- package/connectors/freshping/package.json +1 -1
- package/connectors/freshservice/package.json +1 -1
- package/connectors/freshworkscrm/package.json +1 -1
- package/connectors/fullcontact/package.json +1 -1
- package/connectors/fusioo/package.json +1 -1
- package/connectors/gali/package.json +1 -1
- package/connectors/gatekeeper/package.json +1 -1
- package/connectors/genderapi/package.json +1 -1
- package/connectors/getresponse/package.json +1 -1
- package/connectors/getscreenshot/package.json +1 -1
- package/connectors/ghost/package.json +1 -1
- package/connectors/giphy/package.json +1 -1
- package/connectors/gitea/package.json +1 -1
- package/connectors/github/package.json +1 -1
- package/connectors/gitlab/package.json +1 -1
- package/connectors/gleap/package.json +1 -1
- package/connectors/gmail/package.json +1 -1
- package/connectors/gocanvas/package.json +1 -1
- package/connectors/godaddy/package.json +1 -1
- package/connectors/gong/package.json +1 -1
- package/connectors/google/package.json +1 -1
- package/connectors/googleads/package.json +1 -1
- package/connectors/googleanalytics/package.json +1 -1
- package/connectors/googlebigquery/package.json +1 -1
- package/connectors/googlebooks/package.json +1 -1
- package/connectors/googlebusinessprofile/package.json +1 -1
- package/connectors/googlecalendar/package.json +1 -1
- package/connectors/googlechat/package.json +1 -1
- package/connectors/googlecloud/package.json +1 -1
- package/connectors/googlecontacts/package.json +1 -1
- package/connectors/googledocs/package.json +1 -1
- package/connectors/googledrive/package.json +1 -1
- package/connectors/googleforms/package.json +1 -1
- package/connectors/googlegemini/package.json +1 -1
- package/connectors/googlemaps/package.json +1 -1
- package/connectors/googleperspective/package.json +1 -1
- package/connectors/googlephotos/package.json +1 -1
- package/connectors/googlesheets/package.json +1 -1
- package/connectors/googleslides/package.json +1 -1
- package/connectors/googletables/package.json +1 -1
- package/connectors/googletasks/package.json +1 -1
- package/connectors/googletranslate/package.json +1 -1
- package/connectors/googlevertexai/package.json +1 -1
- package/connectors/gotify/package.json +1 -1
- package/connectors/gotowebinar/package.json +1 -1
- package/connectors/gptea/package.json +1 -1
- package/connectors/grafana/package.json +1 -1
- package/connectors/grain/package.json +1 -1
- package/connectors/gravityforms/package.json +1 -1
- package/connectors/grist/package.json +1 -1
- package/connectors/groq/package.json +1 -1
- package/connectors/growbots/package.json +1 -1
- package/connectors/gumroad/package.json +1 -1
- package/connectors/gupshup/package.json +1 -1
- package/connectors/guru/package.json +1 -1
- package/connectors/hackernews/package.json +1 -1
- package/connectors/halopsa/package.json +1 -1
- package/connectors/handwrytten/package.json +1 -1
- package/connectors/hansei/package.json +1 -1
- package/connectors/harrypotterapi/package.json +1 -1
- package/connectors/harvest/package.json +1 -1
- package/connectors/headlesstesting/package.json +1 -1
- package/connectors/hedra/package.json +1 -1
- package/connectors/helcim/package.json +1 -1
- package/connectors/hellosign/package.json +1 -1
- package/connectors/helpscout/package.json +1 -1
- package/connectors/heygen/package.json +1 -1
- package/connectors/heysummit/package.json +1 -1
- package/connectors/highlevel/package.json +1 -1
- package/connectors/homeassistant/package.json +1 -1
- package/connectors/hubplanner/package.json +1 -1
- package/connectors/hubspot/package.json +1 -1
- package/connectors/huggingface/package.json +1 -1
- package/connectors/humanticai/package.json +1 -1
- package/connectors/hunter/package.json +1 -1
- package/connectors/hybridanalysis/package.json +1 -1
- package/connectors/iauditorbysafetyculture/package.json +1 -1
- package/connectors/icons8/package.json +1 -1
- package/connectors/idealpostcodes/package.json +1 -1
- package/connectors/idealspot/package.json +1 -1
- package/connectors/ideogram/package.json +1 -1
- package/connectors/ideta/package.json +1 -1
- package/connectors/imessage/package.json +1 -1
- package/connectors/imgbb/package.json +1 -1
- package/connectors/imgur/package.json +1 -1
- package/connectors/impervawaf/package.json +1 -1
- package/connectors/impira/package.json +1 -1
- package/connectors/industryselect/package.json +1 -1
- package/connectors/influxdbcloud/package.json +1 -1
- package/connectors/infolobby/package.json +1 -1
- package/connectors/instabot/package.json +1 -1
- package/connectors/instabug/package.json +1 -1
- package/connectors/intakeq/package.json +1 -1
- package/connectors/intercom/package.json +1 -1
- package/connectors/invoiced/package.json +1 -1
- package/connectors/invoiceninja/package.json +1 -1
- package/connectors/ip2location/package.json +1 -1
- package/connectors/ipinfo/package.json +1 -1
- package/connectors/ipregistry/package.json +1 -1
- package/connectors/irisdfir/package.json +1 -1
- package/connectors/isn/package.json +1 -1
- package/connectors/iterable/package.json +1 -1
- package/connectors/jama/package.json +1 -1
- package/connectors/jasper/package.json +1 -1
- package/connectors/jenkins/package.json +1 -1
- package/connectors/jinaai/package.json +1 -1
- package/connectors/jira/package.json +1 -1
- package/connectors/kadoa/package.json +1 -1
- package/connectors/kafka/package.json +1 -1
- package/connectors/kaggle/package.json +1 -1
- package/connectors/kanbantool/package.json +1 -1
- package/connectors/karbon/package.json +1 -1
- package/connectors/keap/package.json +1 -1
- package/connectors/keygen/package.json +1 -1
- package/connectors/keyzy/package.json +1 -1
- package/connectors/kibana/package.json +1 -1
- package/connectors/kitemaker/package.json +1 -1
- package/connectors/klaviyo/package.json +1 -1
- package/connectors/klazify/package.json +1 -1
- package/connectors/kling/package.json +1 -1
- package/connectors/knack/package.json +1 -1
- package/connectors/knowbe4/package.json +1 -1
- package/connectors/kobotoolbox/package.json +1 -1
- package/connectors/kraftful/package.json +1 -1
- package/connectors/lagrowthmachine/package.json +1 -1
- package/connectors/lambdatest/package.json +1 -1
- package/connectors/landbot/package.json +1 -1
- package/connectors/laposta/package.json +1 -1
- package/connectors/launch27/package.json +1 -1
- package/connectors/launchdarkly/package.json +1 -1
- package/connectors/ldap/package.json +1 -1
- package/connectors/leadboxer/package.json +1 -1
- package/connectors/leadpops/package.json +1 -1
- package/connectors/lemlist/package.json +1 -1
- package/connectors/lemonsqueezy/package.json +1 -1
- package/connectors/leonardo/package.json +1 -1
- package/connectors/lepton/package.json +1 -1
- package/connectors/letsenhance/package.json +1 -1
- package/connectors/libraria/package.json +1 -1
- package/connectors/lighthouse/package.json +1 -1
- package/connectors/limego/package.json +1 -1
- package/connectors/line/package.json +1 -1
- package/connectors/linear/package.json +1 -1
- package/connectors/lingvanex/package.json +1 -1
- package/connectors/linkedin/package.json +1 -1
- package/connectors/linkish/package.json +1 -1
- package/connectors/linode/package.json +1 -1
- package/connectors/liveagent/package.json +1 -1
- package/connectors/localazy/package.json +1 -1
- package/connectors/loginradius/package.json +1 -1
- package/connectors/lokalise/package.json +1 -1
- package/connectors/lonescale/package.json +1 -1
- package/connectors/lucidchart/package.json +1 -1
- package/connectors/luma/package.json +1 -1
- package/connectors/magento2/package.json +1 -1
- package/connectors/mailcheck/package.json +1 -1
- package/connectors/mailchimp/package.json +1 -1
- package/connectors/mailerlite/package.json +1 -1
- package/connectors/mailersend/package.json +1 -1
- package/connectors/mailgun/package.json +1 -1
- package/connectors/mailify/package.json +1 -1
- package/connectors/mailjet/package.json +1 -1
- package/connectors/mailmodo/package.json +1 -1
- package/connectors/malcore/package.json +1 -1
- package/connectors/mandrill/package.json +1 -1
- package/connectors/marcomrobot/package.json +1 -1
- package/connectors/marketingmasterio/package.json +1 -1
- package/connectors/marketplacer/package.json +1 -1
- package/connectors/marketstack/package.json +1 -1
- package/connectors/maropost/package.json +1 -1
- package/connectors/mastodon/package.json +1 -1
- package/connectors/matrix/package.json +1 -1
- package/connectors/mattermost/package.json +1 -1
- package/connectors/mautic/package.json +1 -1
- package/connectors/mav/package.json +1 -1
- package/connectors/maverick/package.json +1 -1
- package/connectors/medium/package.json +1 -1
- package/connectors/mem/package.json +1 -1
- package/connectors/mercury/package.json +1 -1
- package/connectors/messagebird/package.json +1 -1
- package/connectors/meta/package.json +1 -1
- package/connectors/metabase/package.json +1 -1
- package/connectors/mews/package.json +1 -1
- package/connectors/microsoftazuremonitor/package.json +1 -1
- package/connectors/microsoftdynamics365businesscentralapi/package.json +1 -1
- package/connectors/microsoftdynamicscrm/package.json +1 -1
- package/connectors/microsoftentraid/package.json +1 -1
- package/connectors/microsoftentraidazureactivedirectory/package.json +1 -1
- package/connectors/microsoftexcel/package.json +1 -1
- package/connectors/microsoftgraphsecurity/package.json +1 -1
- package/connectors/microsoftonedrive/package.json +1 -1
- package/connectors/microsoftoutlook/package.json +1 -1
- package/connectors/microsoftsharepoint/package.json +1 -1
- package/connectors/microsoftsql/package.json +1 -1
- package/connectors/microsoftteams/package.json +1 -1
- package/connectors/microsoftteamsadmin/package.json +1 -1
- package/connectors/microsofttodo/package.json +1 -1
- package/connectors/midjourney/package.json +1 -1
- package/connectors/miestro/package.json +1 -1
- package/connectors/mindee/package.json +1 -1
- package/connectors/minimax/package.json +1 -1
- package/connectors/miro/package.json +1 -1
- package/connectors/misp/package.json +1 -1
- package/connectors/missive/package.json +1 -1
- package/connectors/mist/package.json +1 -1
- package/connectors/mistral/package.json +1 -1
- package/connectors/mixpanel/package.json +1 -1
- package/connectors/mocean/package.json +1 -1
- package/connectors/modal/package.json +1 -1
- package/connectors/monday/package.json +1 -1
- package/connectors/mongodb/package.json +1 -1
- package/connectors/monicacrm/package.json +1 -1
- package/connectors/moonclerk/package.json +1 -1
- package/connectors/moonmail/package.json +1 -1
- package/connectors/morph/package.json +1 -1
- package/connectors/mqtt/package.json +1 -1
- package/connectors/msg91/package.json +1 -1
- package/connectors/mubert/package.json +1 -1
- package/connectors/murf/package.json +1 -1
- package/connectors/mux/package.json +1 -1
- package/connectors/mxtoolbox/package.json +1 -1
- package/connectors/myaskai/package.json +1 -1
- package/connectors/myphoner/package.json +1 -1
- package/connectors/mysql/package.json +1 -1
- package/connectors/namecheap/package.json +1 -1
- package/connectors/nanonetsocr/package.json +1 -1
- package/connectors/nasa/package.json +1 -1
- package/connectors/ncscale/package.json +1 -1
- package/connectors/netlify/package.json +1 -1
- package/connectors/nextcloud/package.json +1 -1
- package/connectors/nightfallai/package.json +1 -1
- package/connectors/ninox/package.json +1 -1
- package/connectors/nmkr/package.json +1 -1
- package/connectors/nocodb/package.json +1 -1
- package/connectors/notion/package.json +1 -1
- package/connectors/npm/package.json +1 -1
- package/connectors/nuclia/package.json +1 -1
- package/connectors/nusiiproposals/package.json +1 -1
- package/connectors/nyckel/package.json +1 -1
- package/connectors/nyota/package.json +1 -1
- package/connectors/occasion/package.json +1 -1
- package/connectors/ocrspace/package.json +1 -1
- package/connectors/octoai/package.json +1 -1
- package/connectors/odoo/package.json +1 -1
- package/connectors/offalerts/package.json +1 -1
- package/connectors/okta/package.json +1 -1
- package/connectors/ollama/package.json +1 -1
- package/connectors/omeda/package.json +1 -1
- package/connectors/omniconvert/package.json +1 -1
- package/connectors/omnimind/package.json +1 -1
- package/connectors/on2air/package.json +1 -1
- package/connectors/oneai/package.json +1 -1
- package/connectors/onesimpleapi/package.json +1 -1
- package/connectors/onfleet/package.json +1 -1
- package/connectors/openai/AGENTS.md +0 -1
- package/connectors/openai/README.md +3 -3
- package/connectors/openai/package.json +3 -2
- package/connectors/opencti/package.json +1 -1
- package/connectors/openthesaurus/package.json +1 -1
- package/connectors/openweathermap/package.json +1 -1
- package/connectors/opnformerlyomise/package.json +1 -1
- package/connectors/oracledatabase/package.json +1 -1
- package/connectors/orbit/package.json +1 -1
- package/connectors/orderdesk/package.json +1 -1
- package/connectors/ortto/package.json +1 -1
- package/connectors/oura/package.json +1 -1
- package/connectors/paddle/package.json +1 -1
- package/connectors/pagerduty/package.json +1 -1
- package/connectors/pandadoc/package.json +1 -1
- package/connectors/paperform/package.json +1 -1
- package/connectors/papyrs/package.json +1 -1
- package/connectors/parsehub/package.json +1 -1
- package/connectors/parseprompt/package.json +1 -1
- package/connectors/passcreator/package.json +1 -1
- package/connectors/passslot/package.json +1 -1
- package/connectors/patentsview/package.json +1 -1
- package/connectors/patreon/package.json +1 -1
- package/connectors/paymo/package.json +1 -1
- package/connectors/paypal/package.json +1 -1
- package/connectors/peekalink/package.json +1 -1
- package/connectors/perplexity/package.json +1 -1
- package/connectors/persio/package.json +1 -1
- package/connectors/personalai/package.json +1 -1
- package/connectors/phantombuster/package.json +1 -1
- package/connectors/philipshue/package.json +1 -1
- package/connectors/phrase/package.json +1 -1
- package/connectors/pika/package.json +1 -1
- package/connectors/pinata/package.json +1 -1
- package/connectors/pinboard/package.json +1 -1
- package/connectors/pinterest/package.json +1 -1
- package/connectors/pipedrive/package.json +1 -1
- package/connectors/pipefy/package.json +1 -1
- package/connectors/pirateweather/package.json +1 -1
- package/connectors/pitchly/package.json +1 -1
- package/connectors/pivotaltracker/package.json +1 -1
- package/connectors/plaid/package.json +1 -1
- package/connectors/planviewleankit/package.json +1 -1
- package/connectors/planyoonlinebooking/package.json +1 -1
- package/connectors/platformly/package.json +1 -1
- package/connectors/playht/package.json +1 -1
- package/connectors/plecto/package.json +1 -1
- package/connectors/plivo/package.json +1 -1
- package/connectors/postgres/package.json +1 -1
- package/connectors/posthog/package.json +1 -1
- package/connectors/practitest/package.json +1 -1
- package/connectors/predisai/package.json +1 -1
- package/connectors/prodia/package.json +1 -1
- package/connectors/producthunt/package.json +1 -1
- package/connectors/profitwell/package.json +1 -1
- package/connectors/projectbubbleproprofsproject/package.json +1 -1
- package/connectors/prompthub/package.json +1 -1
- package/connectors/prospeai/package.json +1 -1
- package/connectors/pulsetic/package.json +1 -1
- package/connectors/pushbullet/package.json +1 -1
- package/connectors/pushcut/package.json +1 -1
- package/connectors/pusher/package.json +1 -1
- package/connectors/pushover/package.json +1 -1
- package/connectors/qradar/package.json +1 -1
- package/connectors/qualaroo/package.json +1 -1
- package/connectors/qualys/package.json +1 -1
- package/connectors/quentn/package.json +1 -1
- package/connectors/questdb/package.json +1 -1
- package/connectors/quickbase/package.json +1 -1
- package/connectors/quickbooksonline/package.json +1 -1
- package/connectors/quickchart/package.json +1 -1
- package/connectors/quintadb/package.json +1 -1
- package/connectors/quo/package.json +1 -1
- package/connectors/rabbitmq/package.json +1 -1
- package/connectors/radar/package.json +1 -1
- package/connectors/raindrop/package.json +1 -1
- package/connectors/rapid7insightvm/package.json +1 -1
- package/connectors/raventools/package.json +1 -1
- package/connectors/rawgvideogamesdatabase/package.json +1 -1
- package/connectors/rdstationcrm/package.json +1 -1
- package/connectors/readai/package.json +1 -1
- package/connectors/realphonevalidation/package.json +1 -1
- package/connectors/recharge/package.json +1 -1
- package/connectors/recordedfuture/package.json +1 -1
- package/connectors/redash/package.json +1 -1
- package/connectors/reddit/package.json +1 -1
- package/connectors/redis/package.json +1 -1
- package/connectors/reducto/package.json +1 -1
- package/connectors/relevanceai/package.json +1 -1
- package/connectors/relinkurlshortener/package.json +1 -1
- package/connectors/relysia/package.json +1 -1
- package/connectors/replicate/package.json +1 -1
- package/connectors/reply/package.json +1 -1
- package/connectors/replyio/package.json +1 -1
- package/connectors/resemble/package.json +1 -1
- package/connectors/resend/package.json +1 -1
- package/connectors/retable/package.json +1 -1
- package/connectors/reversecontact/package.json +1 -1
- package/connectors/revolut/package.json +1 -1
- package/connectors/rewardful/package.json +1 -1
- package/connectors/ritekit/package.json +1 -1
- package/connectors/roboflow/package.json +1 -1
- package/connectors/robolytix/package.json +1 -1
- package/connectors/roboresponseai/package.json +1 -1
- package/connectors/rocketchat/package.json +1 -1
- package/connectors/rollbar/package.json +1 -1
- package/connectors/rootly/package.json +1 -1
- package/connectors/route4me/package.json +1 -1
- package/connectors/rundeck/package.json +1 -1
- package/connectors/runpod/package.json +1 -1
- package/connectors/runway/package.json +1 -1
- package/connectors/s3/package.json +1 -1
- package/connectors/salesforce/package.json +1 -1
- package/connectors/salesmaa/package.json +1 -1
- package/connectors/salesmate/package.json +1 -1
- package/connectors/salesmsg/package.json +1 -1
- package/connectors/salesrocks/package.json +1 -1
- package/connectors/salessimplify/package.json +1 -1
- package/connectors/samsungsmartthings/package.json +1 -1
- package/connectors/scrapeitcloud/package.json +1 -1
- package/connectors/scrapeninja/package.json +1 -1
- package/connectors/screenshotone/package.json +1 -1
- package/connectors/seamlessai/package.json +1 -1
- package/connectors/searchandsave/package.json +1 -1
- package/connectors/searxng/package.json +1 -1
- package/connectors/seatable/package.json +1 -1
- package/connectors/securityscorecard/package.json +1 -1
- package/connectors/sedo/package.json +1 -1
- package/connectors/segment/package.json +1 -1
- package/connectors/sekoia/package.json +1 -1
- package/connectors/sellix/package.json +1 -1
- package/connectors/semblyai/package.json +1 -1
- package/connectors/sendgrid/package.json +1 -1
- package/connectors/sendy/package.json +1 -1
- package/connectors/sentry/package.json +1 -1
- package/connectors/servicenow/package.json +1 -1
- package/connectors/shadcn/package.json +1 -1
- package/connectors/sharlyai/package.json +1 -1
- package/connectors/shiphero/package.json +1 -1
- package/connectors/shipstation/package.json +1 -1
- package/connectors/shopify/package.json +1 -1
- package/connectors/shortio/package.json +1 -1
- package/connectors/shuffler/package.json +1 -1
- package/connectors/sierrainteractive/package.json +1 -1
- package/connectors/sifter/package.json +1 -1
- package/connectors/signaturit/package.json +1 -1
- package/connectors/signl4/package.json +1 -1
- package/connectors/simpleem/package.json +1 -1
- package/connectors/simplehash/package.json +1 -1
- package/connectors/simplekpi/package.json +1 -1
- package/connectors/simplelocalize/package.json +1 -1
- package/connectors/simplero/package.json +1 -1
- package/connectors/simpletexting/package.json +1 -1
- package/connectors/sitecreatorio/package.json +1 -1
- package/connectors/sitespeakai/package.json +1 -1
- package/connectors/slack/package.json +1 -1
- package/connectors/smaily/package.json +1 -1
- package/connectors/smartreach/package.json +1 -1
- package/connectors/smartrecruiters/package.json +1 -1
- package/connectors/smartsheet/package.json +1 -1
- package/connectors/smartsuite/package.json +1 -1
- package/connectors/smile-io/package.json +1 -1
- package/connectors/smol-machines/package.json +1 -1
- package/connectors/sms77/package.json +1 -1
- package/connectors/smsit/package.json +1 -1
- package/connectors/smsmagic/package.json +1 -1
- package/connectors/smtp2go/package.json +1 -1
- package/connectors/snap/package.json +1 -1
- package/connectors/snapdocs/package.json +1 -1
- package/connectors/snatchbot/package.json +1 -1
- package/connectors/snipcart/package.json +1 -1
- package/connectors/snov-io/package.json +1 -1
- package/connectors/snowflake/package.json +1 -1
- package/connectors/solcast/package.json +1 -1
- package/connectors/solvedata/package.json +1 -1
- package/connectors/sonarqube/package.json +1 -1
- package/connectors/sparkpost/package.json +1 -1
- package/connectors/speakeasy-api/package.json +1 -1
- package/connectors/specific/package.json +1 -1
- package/connectors/specter/package.json +1 -1
- package/connectors/speechify/package.json +1 -1
- package/connectors/spike/package.json +1 -1
- package/connectors/split-in-batches/package.json +1 -1
- package/connectors/split-io/package.json +1 -1
- package/connectors/splunk/package.json +1 -1
- package/connectors/splunk-cloud/package.json +1 -1
- package/connectors/spondyr/package.json +1 -1
- package/connectors/sponge/package.json +1 -1
- package/connectors/spontit/package.json +1 -1
- package/connectors/sportsdata/package.json +1 -1
- package/connectors/spotify/package.json +1 -1
- package/connectors/spotify-ads/package.json +1 -1
- package/connectors/spotpay/package.json +1 -1
- package/connectors/spreadsheet-file/package.json +1 -1
- package/connectors/sprig/package.json +1 -1
- package/connectors/sprinklr/package.json +1 -1
- package/connectors/sprout-social/package.json +1 -1
- package/connectors/spydra/package.json +1 -1
- package/connectors/square/package.json +1 -1
- package/connectors/squarespace/package.json +1 -1
- package/connectors/squid/package.json +1 -1
- package/connectors/sse-trigger/package.json +1 -1
- package/connectors/ssh/package.json +1 -1
- package/connectors/sslmatecertspotterapi/package.json +1 -1
- package/connectors/stability-api-platform/package.json +1 -1
- package/connectors/stabilityai/package.json +1 -1
- package/connectors/stablebrowse/package.json +1 -1
- package/connectors/stackadapt/package.json +1 -1
- package/connectors/stackby/package.json +1 -1
- package/connectors/stackexchange/package.json +1 -1
- package/connectors/stage/package.json +1 -1
- package/connectors/stagehand/package.json +1 -1
- package/connectors/stainlessapi/package.json +1 -1
- package/connectors/stammerai/package.json +1 -1
- package/connectors/stampedio/package.json +1 -1
- package/connectors/standard-signal/package.json +1 -1
- package/connectors/standout/package.json +1 -1
- package/connectors/starton/package.json +1 -1
- package/connectors/statsig/package.json +1 -1
- package/connectors/statuscake/package.json +1 -1
- package/connectors/statuspage/package.json +1 -1
- package/connectors/steel-dev/package.json +1 -1
- package/connectors/sticky-note/package.json +1 -1
- package/connectors/stilta/package.json +1 -1
- package/connectors/stitch-data/package.json +1 -1
- package/connectors/stop-and-error/package.json +1 -1
- package/connectors/stoplight/package.json +1 -1
- package/connectors/stoplight-api-platform/package.json +1 -1
- package/connectors/storyblok/package.json +1 -1
- package/connectors/strand-ai/package.json +1 -1
- package/connectors/strapi/package.json +1 -1
- package/connectors/strava/package.json +1 -1
- package/connectors/streak/package.json +1 -1
- package/connectors/streamable/package.json +1 -1
- package/connectors/stripe/package.json +1 -1
- package/connectors/stripe-billing-advanced/package.json +1 -1
- package/connectors/stripe-connect-platform/package.json +1 -1
- package/connectors/stripe-financial-connections/package.json +1 -1
- package/connectors/stripe-issuing/package.json +1 -1
- package/connectors/stripe-reporting-advanced/package.json +1 -1
- package/connectors/stripe-sigma/package.json +1 -1
- package/connectors/stripe-tax-advanced/package.json +1 -1
- package/connectors/stripe-terminal/package.json +1 -1
- package/connectors/stripe-webhooks-advanced/package.json +1 -1
- package/connectors/stripeapps/package.json +1 -1
- package/connectors/stripeatlas/package.json +1 -1
- package/connectors/stripecapital/package.json +1 -1
- package/connectors/stripeclimate/package.json +1 -1
- package/connectors/stripeidentity/package.json +1 -1
- package/connectors/stripetreasury/package.json +1 -1
- package/connectors/studiobyai21labs/package.json +1 -1
- package/connectors/stytch/package.json +1 -1
- package/connectors/substack/package.json +1 -1
- package/connectors/sucuri/package.json +1 -1
- package/connectors/sucuri-api-platform/package.json +1 -1
- package/connectors/sugarcrm/package.json +1 -1
- package/connectors/suitedash/package.json +1 -1
- package/connectors/sumo-logic/package.json +1 -1
- package/connectors/suno/package.json +1 -1
- package/connectors/supabase/package.json +1 -1
- package/connectors/supabase-api-platform/package.json +1 -1
- package/connectors/supadata/package.json +1 -1
- package/connectors/supernormal/package.json +1 -1
- package/connectors/superpowered/package.json +1 -1
- package/connectors/superset/package.json +1 -1
- package/connectors/supportbee/package.json +1 -1
- package/connectors/supportivekoala/package.json +1 -1
- package/connectors/surtrdefensesystems/package.json +1 -1
- package/connectors/surveysparrow/package.json +1 -1
- package/connectors/survicate/package.json +1 -1
- package/connectors/swagup/package.json +1 -1
- package/connectors/switchboard/package.json +1 -1
- package/connectors/syncly/package.json +1 -1
- package/connectors/syncromsp/package.json +1 -1
- package/connectors/synphony/package.json +1 -1
- package/connectors/synthesia/package.json +1 -1
- package/connectors/syntheticsciences/package.json +1 -1
- package/connectors/syntropy/package.json +1 -1
- package/connectors/sysdig/package.json +1 -1
- package/connectors/tableau/package.json +1 -1
- package/connectors/taboola/package.json +1 -1
- package/connectors/taiga/package.json +1 -1
- package/connectors/takecareos/package.json +1 -1
- package/connectors/talend-api-platform/package.json +1 -1
- package/connectors/talentlms/package.json +1 -1
- package/connectors/talkdesk/package.json +1 -1
- package/connectors/talknotes/package.json +1 -1
- package/connectors/tapfiliate/package.json +1 -1
- package/connectors/tave/package.json +1 -1
- package/connectors/tdameritrade/package.json +1 -1
- package/connectors/teachable/package.json +1 -1
- package/connectors/teamdeck/package.json +1 -1
- package/connectors/teamgate/package.json +1 -1
- package/connectors/teamtailor/package.json +1 -1
- package/connectors/teamup/package.json +1 -1
- package/connectors/teamwork/package.json +1 -1
- package/connectors/teknoir/package.json +1 -1
- package/connectors/telegram/package.json +1 -1
- package/connectors/teleport/package.json +1 -1
- package/connectors/telnyx/package.json +1 -1
- package/connectors/telnyx/src/utils/config.ts +1 -1
- package/connectors/tenable/package.json +1 -1
- package/connectors/tenor/package.json +1 -1
- package/connectors/tensorboard/package.json +1 -1
- package/connectors/tepali/package.json +1 -1
- package/connectors/terminal-use/package.json +1 -1
- package/connectors/terminus/package.json +1 -1
- package/connectors/terraform-cloud/package.json +1 -1
- package/connectors/testerarmy/package.json +1 -1
- package/connectors/testim/package.json +1 -1
- package/connectors/testmo/package.json +1 -1
- package/connectors/testmonitor/package.json +1 -1
- package/connectors/testrail/package.json +1 -1
- package/connectors/testrigor/package.json +1 -1
- package/connectors/tettra/package.json +1 -1
- package/connectors/tettra-api-platform/package.json +1 -1
- package/connectors/textcortex/package.json +1 -1
- package/connectors/textcortexai/package.json +1 -1
- package/connectors/textgain/package.json +1 -1
- package/connectors/textit/package.json +1 -1
- package/connectors/textkit/package.json +1 -1
- package/connectors/textmagic/package.json +1 -1
- package/connectors/textrazor/package.json +1 -1
- package/connectors/textsidekick/package.json +1 -1
- package/connectors/thankster/package.json +1 -1
- package/connectors/the-company-company/package.json +1 -1
- package/connectors/the-hive-project/package.json +1 -1
- package/connectors/the-token-company/package.json +1 -1
- package/connectors/the-trade-desk/package.json +1 -1
- package/connectors/thecustomerfactor/package.json +1 -1
- package/connectors/thehive/package.json +1 -1
- package/connectors/thehive5/package.json +1 -1
- package/connectors/theleap/package.json +1 -1
- package/connectors/thoughtfulgpt/package.json +1 -1
- package/connectors/thoughtspot/package.json +1 -1
- package/connectors/thousandeyes/package.json +1 -1
- package/connectors/thrivecart/package.json +1 -1
- package/connectors/ticket-tailor/package.json +1 -1
- package/connectors/ticketbud/package.json +1 -1
- package/connectors/ticketmaster/package.json +1 -1
- package/connectors/ticketsource/package.json +1 -1
- package/connectors/ticktick/package.json +1 -1
- package/connectors/tidbcloud/package.json +1 -1
- package/connectors/tidio/package.json +1 -1
- package/connectors/tierion/package.json +1 -1
- package/connectors/tiktok/package.json +1 -1
- package/connectors/tiktok-events-api/package.json +1 -1
- package/connectors/tiktokads/package.json +1 -1
- package/connectors/tilda/package.json +1 -1
- package/connectors/time-saved/package.json +1 -1
- package/connectors/timelinesai/package.json +1 -1
- package/connectors/timescaledb/package.json +1 -1
- package/connectors/timetonic/package.json +1 -1
- package/connectors/tines/package.json +1 -1
- package/connectors/tinker/package.json +1 -1
- package/connectors/tinybird/package.json +1 -1
- package/connectors/tinypng/package.json +1 -1
- package/connectors/tinyurl/package.json +1 -1
- package/connectors/tipalti/package.json +1 -1
- package/connectors/tisane/package.json +1 -1
- package/connectors/tisanelabs/package.json +1 -1
- package/connectors/tito/package.json +1 -1
- package/connectors/toast-pos/package.json +1 -1
- package/connectors/todoist/package.json +1 -1
- package/connectors/together/package.json +1 -1
- package/connectors/together-api-platform/package.json +1 -1
- package/connectors/toggl/package.json +1 -1
- package/connectors/toggl-track/package.json +1 -1
- package/connectors/tokenmetrics/package.json +1 -1
- package/connectors/toket/package.json +1 -1
- package/connectors/tomtom/package.json +1 -1
- package/connectors/topaz-labs/package.json +1 -1
- package/connectors/totalis/package.json +1 -1
- package/connectors/totango/package.json +1 -1
- package/connectors/totp/package.json +1 -1
- package/connectors/trackjs/package.json +1 -1
- package/connectors/trackvia/package.json +1 -1
- package/connectors/transform/package.json +1 -1
- package/connectors/transifex/package.json +1 -1
- package/connectors/transload/package.json +1 -1
- package/connectors/traverse/package.json +1 -1
- package/connectors/travisci/package.json +1 -1
- package/connectors/travo/package.json +1 -1
- package/connectors/travo-ai/package.json +1 -1
- package/connectors/travo-real-estate/package.json +1 -1
- package/connectors/tray-api-platform/package.json +1 -1
- package/connectors/trellistech/package.json +1 -1
- package/connectors/trellixepo/package.json +1 -1
- package/connectors/trello/package.json +1 -1
- package/connectors/trengo/package.json +1 -1
- package/connectors/trevorio/package.json +1 -1
- package/connectors/tricentis/package.json +1 -1
- package/connectors/trigger-dev/package.json +1 -1
- package/connectors/trigger-dev-api-platform/package.json +1 -1
- package/connectors/triggercmd/package.json +1 -1
- package/connectors/triple-whale/package.json +1 -1
- package/connectors/truelayer/package.json +1 -1
- package/connectors/trustpilot/package.json +1 -1
- package/connectors/trustpilot-business/package.json +1 -1
- package/connectors/trybloom/package.json +1 -1
- package/connectors/trycardinal-ai/package.json +1 -1
- package/connectors/tryprism/package.json +1 -1
- package/connectors/tumblr/package.json +1 -1
- package/connectors/turbohire/package.json +1 -1
- package/connectors/turbot-pipes/package.json +1 -1
- package/connectors/turso/package.json +1 -1
- package/connectors/turso-api-platform/package.json +1 -1
- package/connectors/tuskr/package.json +1 -1
- package/connectors/tuulio/package.json +1 -1
- package/connectors/twake/package.json +1 -1
- package/connectors/twelve-data/package.json +1 -1
- package/connectors/twilio/package.json +1 -1
- package/connectors/twilio/src/utils/config.ts +1 -1
- package/connectors/twilio-api-platform/package.json +1 -1
- package/connectors/twist/package.json +1 -1
- package/connectors/twitch/package.json +1 -1
- package/connectors/tyk/package.json +1 -1
- package/connectors/tyk-api-platform/package.json +1 -1
- package/connectors/typeform/package.json +1 -1
- package/connectors/typesense/package.json +1 -1
- package/connectors/typless/package.json +1 -1
- package/connectors/udio/package.json +1 -1
- package/connectors/ultimate-ai/package.json +1 -1
- package/connectors/umami/package.json +1 -1
- package/connectors/unbounce/package.json +1 -1
- package/connectors/unifold/package.json +1 -1
- package/connectors/unione/package.json +1 -1
- package/connectors/uniprot/package.json +1 -1
- package/connectors/unisender/package.json +1 -1
- package/connectors/unisson/package.json +1 -1
- package/connectors/uniswap-api/package.json +1 -1
- package/connectors/unit/package.json +1 -1
- package/connectors/unleash/package.json +1 -1
- package/connectors/unleashedsoftware/package.json +1 -1
- package/connectors/unpaywall/package.json +1 -1
- package/connectors/upcloud/package.json +1 -1
- package/connectors/updown-io/package.json +1 -1
- package/connectors/upkeep/package.json +1 -1
- package/connectors/uplead/package.json +1 -1
- package/connectors/uploadcare/package.json +1 -1
- package/connectors/uproc/package.json +1 -1
- package/connectors/ups/package.json +1 -1
- package/connectors/upstash/package.json +1 -1
- package/connectors/upstash-api-platform/package.json +1 -1
- package/connectors/uptimerobot/package.json +1 -1
- package/connectors/uptimetoolbox/package.json +1 -1
- package/connectors/urlscanio/package.json +1 -1
- package/connectors/usebidflow/package.json +1 -1
- package/connectors/usecrow/package.json +1 -1
- package/connectors/usereframe/package.json +1 -1
- package/connectors/userflow/package.json +1 -1
- package/connectors/userlens/package.json +1 -1
- package/connectors/userlist/package.json +1 -1
- package/connectors/userpilot/package.json +1 -1
- package/connectors/uservoice/package.json +1 -1
- package/connectors/usps/package.json +1 -1
- package/connectors/uspto/package.json +1 -1
- package/connectors/v0/package.json +1 -1
- package/connectors/valence/package.json +1 -1
- package/connectors/valgo/package.json +1 -1
- package/connectors/vanta/package.json +1 -1
- package/connectors/vapi/package.json +1 -1
- package/connectors/vault/package.json +1 -1
- package/connectors/vector-legal/package.json +1 -1
- package/connectors/vector-legal-api/package.json +1 -1
- package/connectors/vectorshift/package.json +1 -1
- package/connectors/vela/package.json +1 -1
- package/connectors/velum-data-quality/package.json +1 -1
- package/connectors/velum-labs/package.json +1 -1
- package/connectors/venafi/package.json +1 -1
- package/connectors/veo/package.json +1 -1
- package/connectors/veracode/package.json +1 -1
- package/connectors/vercel/package.json +1 -1
- package/connectors/vercel-ai-gateway/package.json +1 -1
- package/connectors/vercel-api-platform/package.json +1 -1
- package/connectors/vercel-blob/package.json +1 -1
- package/connectors/vercel-blob-platform/package.json +1 -1
- package/connectors/vercel-edge-config/package.json +1 -1
- package/connectors/vercel-edge-config-platform/package.json +1 -1
- package/connectors/verdex/package.json +1 -1
- package/connectors/verifalia/package.json +1 -1
- package/connectors/veriphone/package.json +1 -1
- package/connectors/vero/package.json +1 -1
- package/connectors/vertex-ai/package.json +1 -1
- package/connectors/vidyard/package.json +1 -1
- package/connectors/vimeo/package.json +1 -1
- package/connectors/virustotal/package.json +1 -1
- package/connectors/visibl-semiconductors/package.json +1 -1
- package/connectors/vitally/package.json +1 -1
- package/connectors/vivenu/package.json +1 -1
- package/connectors/vivifyscrum/package.json +1 -1
- package/connectors/voiceflow/package.json +1 -1
- package/connectors/voicit/package.json +1 -1
- package/connectors/voltair/package.json +1 -1
- package/connectors/vonage/package.json +1 -1
- package/connectors/voquill/package.json +1 -1
- package/connectors/vowel/package.json +1 -1
- package/connectors/voygr/package.json +1 -1
- package/connectors/vultr/package.json +1 -1
- package/connectors/vwo/package.json +1 -1
- package/connectors/waboxapp/package.json +1 -1
- package/connectors/wait/package.json +1 -1
- package/connectors/wakatime/package.json +1 -1
- package/connectors/walmart-marketplace/package.json +1 -1
- package/connectors/wandb/package.json +1 -1
- package/connectors/wappalyzer/package.json +1 -1
- package/connectors/watchsignals/package.json +1 -1
- package/connectors/wati/package.json +1 -1
- package/connectors/wato/package.json +1 -1
- package/connectors/wave-accounting/package.json +1 -1
- package/connectors/wavelineextract/package.json +1 -1
- package/connectors/wayco/package.json +1 -1
- package/connectors/weaviate/package.json +1 -1
- package/connectors/weaviate-api-platform/package.json +1 -1
- package/connectors/webengage/package.json +1 -1
- package/connectors/webex/package.json +1 -1
- package/connectors/webexbycisco/package.json +1 -1
- package/connectors/webflow/package.json +1 -1
- package/connectors/webhook/package.json +1 -1
- package/connectors/webhooks/package.json +1 -1
- package/connectors/webinarjam/package.json +1 -1
- package/connectors/webpagetest/package.json +1 -1
- package/connectors/webscraperio/package.json +1 -1
- package/connectors/weezevent/package.json +1 -1
- package/connectors/weights-biases/package.json +1 -1
- package/connectors/wekan/package.json +1 -1
- package/connectors/whal3s/package.json +1 -1
- package/connectors/whatconverts/package.json +1 -1
- package/connectors/whatsapp/package.json +1 -1
- package/connectors/whatsapp-cloud-api/package.json +1 -1
- package/connectors/wideframe/package.json +1 -1
- package/connectors/wikipedia/package.json +1 -1
- package/connectors/wildcard/package.json +1 -1
- package/connectors/windmill/package.json +1 -1
- package/connectors/windmill-api-platform/package.json +1 -1
- package/connectors/wipo/package.json +1 -1
- package/connectors/wise/package.json +1 -1
- package/connectors/wistia/package.json +1 -1
- package/connectors/withai/package.json +1 -1
- package/connectors/wix/package.json +1 -1
- package/connectors/wiz/package.json +1 -1
- package/connectors/wizychat/package.json +1 -1
- package/connectors/wolframoralpha/package.json +1 -1
- package/connectors/wonderchat/package.json +1 -1
- package/connectors/wondercraft/package.json +1 -1
- package/connectors/woocommerce/package.json +1 -1
- package/connectors/woodpecker/package.json +1 -1
- package/connectors/woodpeckerco/package.json +1 -1
- package/connectors/wordfence/package.json +1 -1
- package/connectors/wordfence-api-platform/package.json +1 -1
- package/connectors/wordpress/package.json +1 -1
- package/connectors/workable/package.json +1 -1
- package/connectors/workast/package.json +1 -1
- package/connectors/workato/package.json +1 -1
- package/connectors/workato-api-platform/package.json +1 -1
- package/connectors/workboard/package.json +1 -1
- package/connectors/workflow-trigger/package.json +1 -1
- package/connectors/workos/package.json +1 -1
- package/connectors/woxo/package.json +1 -1
- package/connectors/wrike/package.json +1 -1
- package/connectors/write-binary-file/package.json +1 -1
- package/connectors/writesonic/package.json +1 -1
- package/connectors/wubookratechecker/package.json +1 -1
- package/connectors/wufoo/package.json +1 -1
- package/connectors/x/package.json +1 -1
- package/connectors/xads/package.json +1 -1
- package/connectors/xai/package.json +1 -1
- package/connectors/xai-api-platform/package.json +1 -1
- package/connectors/xai-grok/package.json +1 -1
- package/connectors/xata/package.json +1 -1
- package/connectors/xero/package.json +1 -1
- package/connectors/xml/package.json +1 -1
- package/connectors/xray/package.json +1 -1
- package/connectors/xtractly/package.json +1 -1
- package/connectors/ybug/package.json +1 -1
- package/connectors/ycode/package.json +1 -1
- package/connectors/yesware/package.json +1 -1
- package/connectors/ynab/package.json +1 -1
- package/connectors/yodiz/package.json +1 -1
- package/connectors/yotpo/package.json +1 -1
- package/connectors/you-com/package.json +1 -1
- package/connectors/youart/package.json +1 -1
- package/connectors/yourls/package.json +1 -1
- package/connectors/yousearch/package.json +1 -1
- package/connectors/yousign/package.json +1 -1
- package/connectors/youtube/package.json +2 -1
- package/connectors/youtube/src/cli/index.test.ts +65 -0
- package/connectors/youtube/src/cli/index.ts +6 -3
- package/connectors/zabbix/package.json +1 -1
- package/connectors/zammad/package.json +1 -1
- package/connectors/zapier-api-platform/package.json +1 -1
- package/connectors/zatanna/package.json +1 -1
- package/connectors/zendesk/package.json +1 -1
- package/connectors/zendesk/server/index.js +1 -1
- package/connectors/zendesk/src/server/index.ts +1 -1
- package/connectors/zenodo/package.json +1 -1
- package/connectors/zenrows/package.json +1 -1
- package/connectors/zenserp/package.json +1 -1
- package/connectors/zerobounce/package.json +1 -1
- package/connectors/zerosettle/package.json +1 -1
- package/connectors/zerotier/package.json +1 -1
- package/connectors/zhipu-ai/package.json +1 -1
- package/connectors/zibra-labs/package.json +1 -1
- package/connectors/zipkin/package.json +1 -1
- package/connectors/zoho/package.json +1 -1
- package/connectors/zoho-analytics/package.json +1 -1
- package/connectors/zoho-bigin/package.json +1 -1
- package/connectors/zoho-campaigns/package.json +1 -1
- package/connectors/zoho-cliq/package.json +1 -1
- package/connectors/zoho-creator/package.json +1 -1
- package/connectors/zoho-inventory/package.json +1 -1
- package/connectors/zoho-meeting/package.json +1 -1
- package/connectors/zoho-people/package.json +1 -1
- package/connectors/zoho-sign/package.json +1 -1
- package/connectors/zoho-subscriptions/package.json +1 -1
- package/connectors/zoho-survey/package.json +1 -1
- package/connectors/zohobookings/package.json +1 -1
- package/connectors/zohobooks/package.json +1 -1
- package/connectors/zohocrm/package.json +1 -1
- package/connectors/zohodesk/package.json +1 -1
- package/connectors/zohoforms/package.json +1 -1
- package/connectors/zohoprojects/package.json +1 -1
- package/connectors/zohorecruit/package.json +1 -1
- package/connectors/zohovault/package.json +1 -1
- package/connectors/zohoworkdrive/package.json +1 -1
- package/connectors/zolvo/package.json +1 -1
- package/connectors/zonkafeedback/package.json +1 -1
- package/connectors/zoom/package.json +1 -1
- package/connectors/zoom-api/package.json +1 -1
- package/connectors/zoominfo/package.json +1 -1
- package/connectors/zotero/package.json +1 -1
- package/connectors/zscalerzia/package.json +1 -1
- package/connectors/zulip/package.json +1 -1
- package/connectors/zymbly/package.json +1 -1
- package/dist/index.js +127 -132
- package/dist/lib/paths.d.ts +9 -0
- package/dist/lib/strip.d.ts +1 -0
- package/dist/sdk/fixtures/platform-connectors.d.ts +20 -0
- package/dist/sdk/index.d.ts +696 -0
- package/dist/sdk/index.js +508 -0
- package/dist/sdk/index.test.d.ts +1 -0
- package/dist/sdk/platform-contract.test.d.ts +1 -0
- package/dist/server/auth.d.ts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/serve-auth.d.ts +54 -0
- package/dist/server/serve-auth.test.d.ts +1 -0
- package/dist/server/serve.d.ts +18 -6
- package/dist/server/server-auth-gate.test.d.ts +1 -0
- package/package.json +13 -11
- package/dashboard/dist/assets/index-8uoGZF7B.js +0 -280
- package/dashboard/dist/assets/index-D7ZVhmHr.css +0 -1
- package/dashboard/dist/index.html +0 -13
- package/dashboard/dist/logo.jpg +0 -0
- package/dist/server/dashboard.d.ts +0 -5
- /package/dist/{server/dashboard.test.d.ts → sdk/bundle-boundary.test.d.ts} +0 -0
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ var __export = (target, all) => {
|
|
|
16
16
|
|
|
17
17
|
// src/lib/registry.ts
|
|
18
18
|
import { existsSync as existsSync9, readFileSync as readFileSync4 } from "fs";
|
|
19
|
-
import { join as
|
|
19
|
+
import { join as join9, dirname as dirname4 } from "path";
|
|
20
20
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
21
21
|
|
|
22
22
|
// src/core/errors.ts
|
|
@@ -4969,88 +4969,81 @@ var githubConnector = defineConnector({
|
|
|
4969
4969
|
|
|
4970
4970
|
// src/core/connectors/gmail.ts
|
|
4971
4971
|
import { existsSync as existsSync3, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
|
|
4972
|
-
import { basename, join as
|
|
4972
|
+
import { basename, join as join3 } from "path";
|
|
4973
4973
|
|
|
4974
4974
|
// src/lib/paths.ts
|
|
4975
4975
|
import { existsSync as existsSync2 } from "fs";
|
|
4976
|
-
import { homedir as homedir2 } from "os";
|
|
4977
|
-
import { join as join3, resolve } from "path";
|
|
4978
|
-
|
|
4979
|
-
// ../../node_modules/.bun/@hasna+paths@0.1.0/node_modules/@hasna/paths/dist/index.js
|
|
4980
4976
|
import { homedir } from "os";
|
|
4981
|
-
import { join as join2 } from "path";
|
|
4982
|
-
|
|
4977
|
+
import { join as join2, resolve } from "path";
|
|
4978
|
+
import { homedir as pathsResolverHomedir } from "os";
|
|
4979
|
+
import { join as pathsResolverJoin } from "path";
|
|
4980
|
+
var PATHS_RESOLVER_KIND_ENV = {
|
|
4983
4981
|
config: "HASNA_CONFIG_HOME",
|
|
4984
4982
|
data: "HASNA_DATA_HOME",
|
|
4985
4983
|
state: "HASNA_STATE_HOME",
|
|
4986
4984
|
cache: "HASNA_CACHE_HOME"
|
|
4987
4985
|
};
|
|
4988
|
-
var
|
|
4989
|
-
function
|
|
4986
|
+
var PATHS_RESOLVER_APP_SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
4987
|
+
function pathsResolverAssertApp(app) {
|
|
4990
4988
|
if (typeof app !== "string" || app.length === 0) {
|
|
4991
4989
|
throw new TypeError("paths: app must be a non-empty string");
|
|
4992
4990
|
}
|
|
4993
|
-
if (!
|
|
4991
|
+
if (!PATHS_RESOLVER_APP_SLUG_RE.test(app)) {
|
|
4994
4992
|
throw new TypeError(`paths: invalid app slug "${app}" \u2014 expected lowercase kebab-case ([a-z0-9]+(-[a-z0-9]+)*)`);
|
|
4995
4993
|
}
|
|
4996
4994
|
}
|
|
4997
|
-
function
|
|
4998
|
-
|
|
4999
|
-
}
|
|
5000
|
-
|
|
5001
|
-
const value = envOf(options)[KIND_ENV[kind]];
|
|
5002
|
-
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
5003
|
-
}
|
|
5004
|
-
function isMacOS(platform) {
|
|
5005
|
-
return platform === "darwin";
|
|
4995
|
+
function pathsResolverAssertKind(kind) {
|
|
4996
|
+
if (!Object.keys(PATHS_RESOLVER_KIND_ENV).includes(kind)) {
|
|
4997
|
+
throw new TypeError(`paths: invalid path kind "${kind}" \u2014 expected one of ${Object.keys(PATHS_RESOLVER_KIND_ENV).join(", ")}`);
|
|
4998
|
+
}
|
|
5006
4999
|
}
|
|
5007
|
-
function
|
|
5008
|
-
|
|
5009
|
-
|
|
5000
|
+
function pathsResolverBaseDir(kind, options) {
|
|
5001
|
+
pathsResolverAssertKind(kind);
|
|
5002
|
+
const env = options.env ?? process.env;
|
|
5003
|
+
const override = env[PATHS_RESOLVER_KIND_ENV[kind]];
|
|
5004
|
+
if (typeof override === "string" && override.length > 0)
|
|
5010
5005
|
return override;
|
|
5011
|
-
const home = options.home ??
|
|
5006
|
+
const home = options.home ?? pathsResolverHomedir();
|
|
5012
5007
|
const platform = options.platform ?? process.platform;
|
|
5013
|
-
if (
|
|
5008
|
+
if (platform === "darwin") {
|
|
5014
5009
|
switch (kind) {
|
|
5015
5010
|
case "config":
|
|
5016
5011
|
case "data":
|
|
5017
|
-
return
|
|
5012
|
+
return pathsResolverJoin(home, "Library", "Application Support", "Hasna");
|
|
5018
5013
|
case "cache":
|
|
5019
|
-
return
|
|
5014
|
+
return pathsResolverJoin(home, "Library", "Caches", "Hasna");
|
|
5020
5015
|
case "state":
|
|
5021
|
-
return
|
|
5016
|
+
return pathsResolverJoin(home, "Library", "Logs", "Hasna");
|
|
5022
5017
|
}
|
|
5023
5018
|
}
|
|
5024
5019
|
switch (kind) {
|
|
5025
5020
|
case "config":
|
|
5026
|
-
return
|
|
5021
|
+
return pathsResolverJoin(home, ".config", "hasna");
|
|
5027
5022
|
case "data":
|
|
5028
|
-
return
|
|
5023
|
+
return pathsResolverJoin(home, ".local", "share", "hasna");
|
|
5029
5024
|
case "state":
|
|
5030
|
-
return
|
|
5025
|
+
return pathsResolverJoin(home, ".local", "state", "hasna");
|
|
5031
5026
|
case "cache":
|
|
5032
|
-
return
|
|
5027
|
+
return pathsResolverJoin(home, ".cache", "hasna");
|
|
5033
5028
|
}
|
|
5034
5029
|
}
|
|
5035
|
-
function
|
|
5036
|
-
|
|
5037
|
-
const appSegment = options.internal === true ?
|
|
5038
|
-
return
|
|
5030
|
+
function pathsResolverResolve(kind, options) {
|
|
5031
|
+
pathsResolverAssertApp(options.app);
|
|
5032
|
+
const appSegment = options.internal === true ? pathsResolverJoin("internal", options.app) : options.app;
|
|
5033
|
+
return pathsResolverJoin(pathsResolverBaseDir(kind, options), appSegment);
|
|
5039
5034
|
}
|
|
5040
5035
|
function dataDir(options) {
|
|
5041
|
-
return
|
|
5036
|
+
return pathsResolverResolve("data", options);
|
|
5042
5037
|
}
|
|
5043
|
-
|
|
5044
|
-
// src/lib/paths.ts
|
|
5045
5038
|
function envOr(name, fallback) {
|
|
5046
5039
|
const value = process.env[name]?.trim();
|
|
5047
5040
|
return value ? value : fallback;
|
|
5048
5041
|
}
|
|
5049
5042
|
function effectiveHome() {
|
|
5050
|
-
return process.env["HOME"] || process.env["USERPROFILE"] ||
|
|
5043
|
+
return process.env["HOME"] || process.env["USERPROFILE"] || homedir();
|
|
5051
5044
|
}
|
|
5052
5045
|
function legacyHomeDir() {
|
|
5053
|
-
return
|
|
5046
|
+
return join2(effectiveHome(), ".hasna", "connectors");
|
|
5054
5047
|
}
|
|
5055
5048
|
function resolverHome() {
|
|
5056
5049
|
return dataDir({
|
|
@@ -5062,7 +5055,7 @@ function adoptResolverHome(resolved, env = process.env) {
|
|
|
5062
5055
|
const dataOverride = env.HASNA_DATA_HOME;
|
|
5063
5056
|
if (typeof dataOverride === "string" && dataOverride.trim().length > 0)
|
|
5064
5057
|
return true;
|
|
5065
|
-
return existsSync2(
|
|
5058
|
+
return existsSync2(join2(resolved, "connectors.db"));
|
|
5066
5059
|
}
|
|
5067
5060
|
function exactConnectorsHome() {
|
|
5068
5061
|
const home = envOr("HASNA_CONNECTORS_DIR", "");
|
|
@@ -5280,7 +5273,7 @@ async function replyToMessage(profile, messageId, input) {
|
|
|
5280
5273
|
}
|
|
5281
5274
|
async function downloadAttachments(profile, input) {
|
|
5282
5275
|
const messageId = getMessageId(input);
|
|
5283
|
-
const outputDir = input.dir ?? input.outputDir ??
|
|
5276
|
+
const outputDir = input.dir ?? input.outputDir ?? join3(configDirs()[0], "attachments", messageId);
|
|
5284
5277
|
mkdirSync(outputDir, { recursive: true });
|
|
5285
5278
|
const attachments = input.attachmentId && input.filename ? [{
|
|
5286
5279
|
attachmentId: input.attachmentId,
|
|
@@ -5292,7 +5285,7 @@ async function downloadAttachments(profile, input) {
|
|
|
5292
5285
|
for (const attachment of attachments) {
|
|
5293
5286
|
const data = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/attachments/${encodeURIComponent(attachment.attachmentId)}`, {});
|
|
5294
5287
|
const filename = safeFilename(attachment.filename);
|
|
5295
|
-
const path =
|
|
5288
|
+
const path = join3(outputDir, filename);
|
|
5296
5289
|
const buffer = Buffer.from(data.data, "base64url");
|
|
5297
5290
|
writeFileSync(path, buffer);
|
|
5298
5291
|
downloaded.push({
|
|
@@ -5408,8 +5401,8 @@ async function refreshAccessToken(profile, currentTokens) {
|
|
|
5408
5401
|
}
|
|
5409
5402
|
function listProfiles() {
|
|
5410
5403
|
const profiles = new Set;
|
|
5411
|
-
for (const
|
|
5412
|
-
const profilesDir =
|
|
5404
|
+
for (const baseDir of configDirs()) {
|
|
5405
|
+
const profilesDir = join3(baseDir, "profiles");
|
|
5413
5406
|
if (!existsSync3(profilesDir))
|
|
5414
5407
|
continue;
|
|
5415
5408
|
for (const entry of readdirSync(profilesDir, { withFileTypes: true })) {
|
|
@@ -5426,10 +5419,10 @@ function loadCredentials(profile) {
|
|
|
5426
5419
|
const envClientSecret = process.env.GMAIL_CLIENT_SECRET ?? process.env.GOOGLE_CLIENT_SECRET;
|
|
5427
5420
|
if (envClientId && envClientSecret)
|
|
5428
5421
|
return { clientId: envClientId, clientSecret: envClientSecret };
|
|
5429
|
-
for (const
|
|
5422
|
+
for (const baseDir of configDirs()) {
|
|
5430
5423
|
const credentials = {
|
|
5431
|
-
...readJson(
|
|
5432
|
-
...readJson(
|
|
5424
|
+
...readJson(join3(baseDir, "credentials.json")),
|
|
5425
|
+
...readJson(join3(baseDir, "profiles", profile, "config.json"))
|
|
5433
5426
|
};
|
|
5434
5427
|
if (credentials.clientId || credentials.clientSecret)
|
|
5435
5428
|
return credentials;
|
|
@@ -5437,28 +5430,28 @@ function loadCredentials(profile) {
|
|
|
5437
5430
|
return {};
|
|
5438
5431
|
}
|
|
5439
5432
|
function loadTokens(profile) {
|
|
5440
|
-
for (const
|
|
5441
|
-
const fromProfile = readJson(
|
|
5433
|
+
for (const baseDir of configDirs()) {
|
|
5434
|
+
const fromProfile = readJson(join3(baseDir, "profiles", profile, "tokens.json"));
|
|
5442
5435
|
if (fromProfile)
|
|
5443
5436
|
return fromProfile;
|
|
5444
|
-
const flat = readJson(
|
|
5437
|
+
const flat = readJson(join3(baseDir, "profiles", `${profile}.json`));
|
|
5445
5438
|
if (flat)
|
|
5446
5439
|
return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
|
|
5447
5440
|
}
|
|
5448
5441
|
return null;
|
|
5449
5442
|
}
|
|
5450
5443
|
function saveTokens(profile, tokens) {
|
|
5451
|
-
const
|
|
5452
|
-
const profileDir =
|
|
5444
|
+
const baseDir = configDirs().find((dir) => existsSync3(dir)) ?? configDirs()[0];
|
|
5445
|
+
const profileDir = join3(baseDir, "profiles", profile);
|
|
5453
5446
|
mkdirSync(profileDir, { recursive: true });
|
|
5454
|
-
writeFileSync(
|
|
5447
|
+
writeFileSync(join3(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
|
|
5455
5448
|
}
|
|
5456
5449
|
function configDirs() {
|
|
5457
5450
|
const explicit = process.env.HASNA_GMAIL_CONNECTOR_DIR ?? process.env.GMAIL_CONNECTOR_DIR;
|
|
5458
5451
|
if (explicit)
|
|
5459
5452
|
return [explicit];
|
|
5460
|
-
const
|
|
5461
|
-
return [
|
|
5453
|
+
const baseDir = connectorsHome();
|
|
5454
|
+
return [join3(baseDir, "gmail"), join3(baseDir, "connect-gmail")];
|
|
5462
5455
|
}
|
|
5463
5456
|
function readJson(path) {
|
|
5464
5457
|
if (!existsSync3(path))
|
|
@@ -5543,7 +5536,7 @@ function safeFilename(filename) {
|
|
|
5543
5536
|
|
|
5544
5537
|
// src/core/connectors/googledrive.ts
|
|
5545
5538
|
import { existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as readFileSync2, readdirSync as readdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
5546
|
-
import { basename as basename2, join as
|
|
5539
|
+
import { basename as basename2, join as join4 } from "path";
|
|
5547
5540
|
var DRIVE_API_BASE = "https://www.googleapis.com/drive/v3";
|
|
5548
5541
|
var TOKEN_URL2 = "https://oauth2.googleapis.com/token";
|
|
5549
5542
|
var REFRESH_BUFFER_MS2 = 5 * 60 * 1000;
|
|
@@ -5752,8 +5745,8 @@ async function refreshAccessToken2(profile, currentTokens) {
|
|
|
5752
5745
|
}
|
|
5753
5746
|
function listProfiles2() {
|
|
5754
5747
|
const profiles = new Set;
|
|
5755
|
-
for (const
|
|
5756
|
-
const profilesDir =
|
|
5748
|
+
for (const baseDir of configDirs2()) {
|
|
5749
|
+
const profilesDir = join4(baseDir, "profiles");
|
|
5757
5750
|
if (!existsSync4(profilesDir))
|
|
5758
5751
|
continue;
|
|
5759
5752
|
for (const entry of readdirSync2(profilesDir, { withFileTypes: true })) {
|
|
@@ -5799,10 +5792,10 @@ function loadCredentials2(profile) {
|
|
|
5799
5792
|
const envClientSecret = process.env.GOOGLE_CLIENT_SECRET;
|
|
5800
5793
|
if (envClientId && envClientSecret)
|
|
5801
5794
|
return { clientId: envClientId, clientSecret: envClientSecret };
|
|
5802
|
-
for (const
|
|
5795
|
+
for (const baseDir of configDirs2()) {
|
|
5803
5796
|
const credentials = {
|
|
5804
|
-
...readJson2(
|
|
5805
|
-
...readJson2(
|
|
5797
|
+
...readJson2(join4(baseDir, "credentials.json")),
|
|
5798
|
+
...readJson2(join4(baseDir, "profiles", profile, "config.json"))
|
|
5806
5799
|
};
|
|
5807
5800
|
if (credentials.clientId || credentials.clientSecret)
|
|
5808
5801
|
return credentials;
|
|
@@ -5810,28 +5803,28 @@ function loadCredentials2(profile) {
|
|
|
5810
5803
|
return {};
|
|
5811
5804
|
}
|
|
5812
5805
|
function loadTokens2(profile) {
|
|
5813
|
-
for (const
|
|
5814
|
-
const fromProfile = readJson2(
|
|
5806
|
+
for (const baseDir of configDirs2()) {
|
|
5807
|
+
const fromProfile = readJson2(join4(baseDir, "profiles", profile, "tokens.json"));
|
|
5815
5808
|
if (fromProfile)
|
|
5816
5809
|
return fromProfile;
|
|
5817
|
-
const flat = readJson2(
|
|
5810
|
+
const flat = readJson2(join4(baseDir, "profiles", `${profile}.json`));
|
|
5818
5811
|
if (flat)
|
|
5819
5812
|
return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
|
|
5820
5813
|
}
|
|
5821
5814
|
return null;
|
|
5822
5815
|
}
|
|
5823
5816
|
function saveTokens2(profile, tokens) {
|
|
5824
|
-
const
|
|
5825
|
-
const profileDir =
|
|
5817
|
+
const baseDir = configDirs2().find((dir) => existsSync4(dir)) ?? configDirs2()[0];
|
|
5818
|
+
const profileDir = join4(baseDir, "profiles", profile);
|
|
5826
5819
|
mkdirSync2(profileDir, { recursive: true });
|
|
5827
|
-
writeFileSync2(
|
|
5820
|
+
writeFileSync2(join4(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
|
|
5828
5821
|
}
|
|
5829
5822
|
function configDirs2() {
|
|
5830
5823
|
const explicit = process.env.HASNA_GOOGLE_DRIVE_CONNECTOR_DIR ?? process.env.GOOGLE_DRIVE_CONNECTOR_DIR;
|
|
5831
5824
|
if (explicit)
|
|
5832
5825
|
return [explicit];
|
|
5833
|
-
const
|
|
5834
|
-
return [
|
|
5826
|
+
const baseDir = connectorsHome();
|
|
5827
|
+
return [join4(baseDir, "googledrive"), join4(baseDir, "connect-googledrive")];
|
|
5835
5828
|
}
|
|
5836
5829
|
function readJson2(path) {
|
|
5837
5830
|
if (!existsSync4(path))
|
|
@@ -5869,7 +5862,7 @@ function extractGoogleError(body) {
|
|
|
5869
5862
|
// package.json
|
|
5870
5863
|
var package_default = {
|
|
5871
5864
|
name: "@hasna/connectors",
|
|
5872
|
-
version: "1.4.
|
|
5865
|
+
version: "1.4.6",
|
|
5873
5866
|
description: "Open source connector library - Install API connectors with a single command",
|
|
5874
5867
|
type: "module",
|
|
5875
5868
|
bin: {
|
|
@@ -5880,7 +5873,6 @@ var package_default = {
|
|
|
5880
5873
|
files: [
|
|
5881
5874
|
"bin/",
|
|
5882
5875
|
"dist/",
|
|
5883
|
-
"dashboard/dist/",
|
|
5884
5876
|
"connectors/",
|
|
5885
5877
|
"README.md",
|
|
5886
5878
|
"!connectors/**/.test-home/**",
|
|
@@ -5900,20 +5892,23 @@ var package_default = {
|
|
|
5900
5892
|
"./social": {
|
|
5901
5893
|
import: "./dist/social/index.js",
|
|
5902
5894
|
types: "./dist/.types/src/social/index.d.ts"
|
|
5895
|
+
},
|
|
5896
|
+
"./sdk": {
|
|
5897
|
+
types: "./dist/sdk/index.d.ts",
|
|
5898
|
+
import: "./dist/sdk/index.js",
|
|
5899
|
+
default: "./dist/sdk/index.js"
|
|
5903
5900
|
}
|
|
5904
5901
|
},
|
|
5905
5902
|
main: "./dist/index.js",
|
|
5906
5903
|
types: "./dist/index.d.ts",
|
|
5907
5904
|
scripts: {
|
|
5908
|
-
build: "
|
|
5909
|
-
|
|
5910
|
-
postinstall: 'mkdir -p $HOME/.hasna/connectors 2>/dev/null || true; [ "$SKIP_DASHBOARD" = "1" ] || [ ! -f dashboard/package.json ] || [ -d dashboard/node_modules ] || (cd dashboard && bun install)',
|
|
5905
|
+
build: "bun build ./src/cli/index.tsx --outdir ./bin --target bun --external ink --external react --external chalk --external conf --external @hasna/events && bun build ./src/mcp/index.ts --outfile ./bin/mcp.js --target bun && bun build ./src/server/index.ts --outfile ./bin/serve.js --target bun && bun build ./src/index.ts --outdir ./dist --target bun && bun build ./src/social/index.ts --outfile ./dist/social/index.js --target bun && bun build ./src/sdk/index.ts --outfile ./dist/sdk/index.js --target bun && tsc --emitDeclarationOnly --outDir ./dist && tsc -p tsconfig.social.json",
|
|
5906
|
+
postinstall: "mkdir -p $HOME/.hasna/connectors 2>/dev/null || true",
|
|
5911
5907
|
dev: "bun run ./src/cli/index.tsx",
|
|
5912
5908
|
"check:package-secrets": "bun run scripts/check-package-secrets.ts",
|
|
5913
5909
|
typecheck: "tsc --noEmit && tsc -p tsconfig.social.json --noEmit",
|
|
5914
5910
|
test: "bun run build && bun test",
|
|
5915
5911
|
"secrets:scan:npmrc": "bun run scripts/scan-npmrc-auth.mjs",
|
|
5916
|
-
"sdk:build": "cd sdk && bun run build",
|
|
5917
5912
|
prepublishOnly: "bun run secrets:scan:npmrc && bun run build && bun run check:package-secrets && bun test",
|
|
5918
5913
|
prepack: "bun run build && bun run check:package-secrets"
|
|
5919
5914
|
},
|
|
@@ -5933,7 +5928,7 @@ var package_default = {
|
|
|
5933
5928
|
author: "Hasna",
|
|
5934
5929
|
license: "Apache-2.0",
|
|
5935
5930
|
devDependencies: {
|
|
5936
|
-
"@types/bun": "
|
|
5931
|
+
"@types/bun": "1.3.14",
|
|
5937
5932
|
"@types/react": "^18.2.0",
|
|
5938
5933
|
"ink-testing-library": "^4.0.0",
|
|
5939
5934
|
typescript: "^5",
|
|
@@ -5941,7 +5936,6 @@ var package_default = {
|
|
|
5941
5936
|
},
|
|
5942
5937
|
dependencies: {
|
|
5943
5938
|
"@hasna/events": "0.1.8",
|
|
5944
|
-
"@hasna/paths": "0.1.0",
|
|
5945
5939
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
5946
5940
|
chalk: "^5.3.0",
|
|
5947
5941
|
commander: "^12.1.0",
|
|
@@ -5964,11 +5958,12 @@ var package_default = {
|
|
|
5964
5958
|
},
|
|
5965
5959
|
repository: {
|
|
5966
5960
|
type: "git",
|
|
5967
|
-
url: "
|
|
5961
|
+
url: "https://github.com/hasna/apps.git",
|
|
5962
|
+
directory: "apps/connectors"
|
|
5968
5963
|
},
|
|
5969
|
-
homepage: "https://github.com/hasna/connectors#readme",
|
|
5964
|
+
homepage: "https://github.com/hasna/apps/tree/main/apps/connectors#readme",
|
|
5970
5965
|
bugs: {
|
|
5971
|
-
url: "https://github.com/hasna/
|
|
5966
|
+
url: "https://github.com/hasna/apps/issues"
|
|
5972
5967
|
}
|
|
5973
5968
|
};
|
|
5974
5969
|
|
|
@@ -5982,14 +5977,14 @@ import {
|
|
|
5982
5977
|
statSync as statSync3,
|
|
5983
5978
|
writeFileSync as writeFileSync3
|
|
5984
5979
|
} from "fs";
|
|
5985
|
-
import { join as
|
|
5980
|
+
import { join as join7 } from "path";
|
|
5986
5981
|
|
|
5987
5982
|
// src/lib/connector-resolver.ts
|
|
5988
5983
|
import { existsSync as existsSync6, readdirSync as readdirSync4, statSync as statSync2 } from "fs";
|
|
5989
|
-
import { join as
|
|
5984
|
+
import { join as join6 } from "path";
|
|
5990
5985
|
|
|
5991
5986
|
// src/db/database.ts
|
|
5992
|
-
import { dirname as dirname2, join as
|
|
5987
|
+
import { dirname as dirname2, join as join5 } from "path";
|
|
5993
5988
|
import { mkdirSync as mkdirSync3, existsSync as existsSync5, readdirSync as readdirSync3, copyFileSync, statSync } from "fs";
|
|
5994
5989
|
function mergeDirectoryContents(sourceDir, targetDir) {
|
|
5995
5990
|
if (!existsSync5(sourceDir)) {
|
|
@@ -5997,8 +5992,8 @@ function mergeDirectoryContents(sourceDir, targetDir) {
|
|
|
5997
5992
|
}
|
|
5998
5993
|
mkdirSync3(targetDir, { recursive: true });
|
|
5999
5994
|
for (const entry of readdirSync3(sourceDir)) {
|
|
6000
|
-
const sourcePath =
|
|
6001
|
-
const targetPath =
|
|
5995
|
+
const sourcePath = join5(sourceDir, entry);
|
|
5996
|
+
const targetPath = join5(targetDir, entry);
|
|
6002
5997
|
try {
|
|
6003
5998
|
const sourceStat = statSync(sourcePath);
|
|
6004
5999
|
if (sourceStat.isDirectory()) {
|
|
@@ -6014,7 +6009,7 @@ function mergeDirectoryContents(sourceDir, targetDir) {
|
|
|
6014
6009
|
function getConnectorsHome() {
|
|
6015
6010
|
const newDir = connectorsHome();
|
|
6016
6011
|
const home = effectiveHome();
|
|
6017
|
-
const legacyDirs = [
|
|
6012
|
+
const legacyDirs = [join5(home, ".connectors"), join5(home, ".connect")];
|
|
6018
6013
|
mkdirSync3(newDir, { recursive: true });
|
|
6019
6014
|
for (const legacyDir of legacyDirs) {
|
|
6020
6015
|
try {
|
|
@@ -6024,7 +6019,7 @@ function getConnectorsHome() {
|
|
|
6024
6019
|
return newDir;
|
|
6025
6020
|
}
|
|
6026
6021
|
var DB_DIR = getConnectorsHome();
|
|
6027
|
-
var DB_PATH =
|
|
6022
|
+
var DB_PATH = join5(DB_DIR, "connectors.db");
|
|
6028
6023
|
|
|
6029
6024
|
// src/lib/connector-resolver.ts
|
|
6030
6025
|
var LEGACY_CONNECTOR_PREFIX = "connect-";
|
|
@@ -6075,7 +6070,7 @@ function connectorPackageDirNames(name) {
|
|
|
6075
6070
|
function resolveConnectorPackagePath(connectorsDir, name) {
|
|
6076
6071
|
const resolution = resolveConnectorName(name);
|
|
6077
6072
|
const dirNames = connectorPackageDirNames(name);
|
|
6078
|
-
const checkedPaths = dirNames.map((dirName) =>
|
|
6073
|
+
const checkedPaths = dirNames.map((dirName) => join6(connectorsDir, dirName));
|
|
6079
6074
|
const existingPath = checkedPaths.find((path) => existsSync6(path)) ?? null;
|
|
6080
6075
|
const existingDirName = existingPath ? dirNames[checkedPaths.indexOf(existingPath)] : null;
|
|
6081
6076
|
return {
|
|
@@ -6095,8 +6090,8 @@ function getConnectorPackagePath(connectorsDir, name) {
|
|
|
6095
6090
|
function resolveConnectorConfigPaths(name, connectorsHome2 = getConnectorsHome()) {
|
|
6096
6091
|
const resolution = resolveConnectorName(name);
|
|
6097
6092
|
const preferredDirName = resolution.canonicalName || resolution.legacyName;
|
|
6098
|
-
const preferredPath =
|
|
6099
|
-
const legacyPath =
|
|
6093
|
+
const preferredPath = join6(connectorsHome2, preferredDirName);
|
|
6094
|
+
const legacyPath = join6(connectorsHome2, resolution.legacyName);
|
|
6100
6095
|
const paths = preferredPath === legacyPath ? [preferredPath] : [preferredPath, legacyPath];
|
|
6101
6096
|
const existingPaths = paths.filter((path) => existsSync6(path));
|
|
6102
6097
|
return {
|
|
@@ -6241,7 +6236,7 @@ API Key authentication is optional and depends on the bridge deployment. A bridg
|
|
|
6241
6236
|
|
|
6242
6237
|
## Data Storage
|
|
6243
6238
|
|
|
6244
|
-
Connector state is stored under \`~/.hasna/connectors/imessage/\`. Profiles are read from both \`profiles/<name>.json\` and \`profiles/<name>/config.json\` so the connector stays compatible with the shared
|
|
6239
|
+
Connector state is stored under \`~/.hasna/connectors/imessage/\`. Profiles are read from both \`profiles/<name>.json\` and \`profiles/<name>/config.json\` so the connector stays compatible with the shared auth helpers while remaining fully internal to the one-product repo.
|
|
6245
6240
|
`;
|
|
6246
6241
|
var commandInputSchema = exports_external.object({
|
|
6247
6242
|
args: exports_external.array(exports_external.string()).default([]),
|
|
@@ -6283,11 +6278,11 @@ function getConfigReadDirs() {
|
|
|
6283
6278
|
return getConnectorConfigReadDirs(CONNECTOR_NAME);
|
|
6284
6279
|
}
|
|
6285
6280
|
function getProfilesDir() {
|
|
6286
|
-
return
|
|
6281
|
+
return join7(getConfigDir(), "profiles");
|
|
6287
6282
|
}
|
|
6288
6283
|
function getCurrentProfile() {
|
|
6289
6284
|
for (const configDir of getConfigReadDirs()) {
|
|
6290
|
-
const currentProfileFile =
|
|
6285
|
+
const currentProfileFile = join7(configDir, "current_profile");
|
|
6291
6286
|
if (!existsSync7(currentProfileFile))
|
|
6292
6287
|
continue;
|
|
6293
6288
|
try {
|
|
@@ -6301,16 +6296,16 @@ function getCurrentProfile() {
|
|
|
6301
6296
|
function setCurrentProfile(profile) {
|
|
6302
6297
|
const configDir = getConfigDir();
|
|
6303
6298
|
mkdirSync4(configDir, { recursive: true });
|
|
6304
|
-
writeFileSync3(
|
|
6299
|
+
writeFileSync3(join7(configDir, "current_profile"), profile);
|
|
6305
6300
|
}
|
|
6306
6301
|
function getFlatProfilePath(profile) {
|
|
6307
|
-
return
|
|
6302
|
+
return join7(getProfilesDir(), `${profile}.json`);
|
|
6308
6303
|
}
|
|
6309
6304
|
function getFlatProfileReadPaths(profile) {
|
|
6310
|
-
return getConfigReadDirs().map((dir) =>
|
|
6305
|
+
return getConfigReadDirs().map((dir) => join7(dir, "profiles", `${profile}.json`));
|
|
6311
6306
|
}
|
|
6312
6307
|
function getDirectoryProfileReadPaths(profile) {
|
|
6313
|
-
return getConfigReadDirs().map((dir) =>
|
|
6308
|
+
return getConfigReadDirs().map((dir) => join7(dir, "profiles", profile, "config.json"));
|
|
6314
6309
|
}
|
|
6315
6310
|
function loadJsonFile(path) {
|
|
6316
6311
|
try {
|
|
@@ -6347,17 +6342,17 @@ function profileExists(profile) {
|
|
|
6347
6342
|
if (profile === "default") {
|
|
6348
6343
|
return true;
|
|
6349
6344
|
}
|
|
6350
|
-
return getFlatProfileReadPaths(profile).some((path) => existsSync7(path)) || getConfigReadDirs().some((dir) => existsSync7(
|
|
6345
|
+
return getFlatProfileReadPaths(profile).some((path) => existsSync7(path)) || getConfigReadDirs().some((dir) => existsSync7(join7(dir, "profiles", profile)));
|
|
6351
6346
|
}
|
|
6352
6347
|
function listProfiles3() {
|
|
6353
6348
|
const seen = new Set(["default"]);
|
|
6354
6349
|
for (const configDir of getConfigReadDirs()) {
|
|
6355
|
-
const profilesDir =
|
|
6350
|
+
const profilesDir = join7(configDir, "profiles");
|
|
6356
6351
|
if (!existsSync7(profilesDir))
|
|
6357
6352
|
continue;
|
|
6358
6353
|
try {
|
|
6359
6354
|
for (const entry of readdirSync5(profilesDir)) {
|
|
6360
|
-
const fullPath =
|
|
6355
|
+
const fullPath = join7(profilesDir, entry);
|
|
6361
6356
|
const stat = statSync3(fullPath);
|
|
6362
6357
|
if (stat.isDirectory()) {
|
|
6363
6358
|
seen.add(entry);
|
|
@@ -6379,7 +6374,7 @@ function createProfile(profile, config = {}) {
|
|
|
6379
6374
|
}
|
|
6380
6375
|
function clearProfile(profile = getCurrentProfile()) {
|
|
6381
6376
|
const flatPath = getFlatProfilePath(profile);
|
|
6382
|
-
const directoryPath =
|
|
6377
|
+
const directoryPath = join7(getProfilesDir(), profile);
|
|
6383
6378
|
if (existsSync7(flatPath)) {
|
|
6384
6379
|
rmSync(flatPath);
|
|
6385
6380
|
}
|
|
@@ -7189,15 +7184,15 @@ var imessageConnector = defineConnector({
|
|
|
7189
7184
|
|
|
7190
7185
|
// src/core/connectors/stripe.ts
|
|
7191
7186
|
import { existsSync as existsSync8 } from "fs";
|
|
7192
|
-
import { dirname as dirname3, join as
|
|
7187
|
+
import { dirname as dirname3, join as join8 } from "path";
|
|
7193
7188
|
import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "url";
|
|
7194
7189
|
var __dirname3 = dirname3(fileURLToPath2(import.meta.url));
|
|
7195
7190
|
function resolveStripeConnectorDir() {
|
|
7196
7191
|
const candidates = [
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7192
|
+
join8(__dirname3, "..", "..", "..", "connectors", "stripe"),
|
|
7193
|
+
join8(__dirname3, "..", "..", "connectors", "stripe"),
|
|
7194
|
+
join8(__dirname3, "..", "connectors", "stripe"),
|
|
7195
|
+
join8(process.cwd(), "connectors", "stripe")
|
|
7201
7196
|
];
|
|
7202
7197
|
for (const candidate of candidates) {
|
|
7203
7198
|
if (existsSync8(candidate)) {
|
|
@@ -7439,10 +7434,10 @@ function buildCommandHelp2(spec) {
|
|
|
7439
7434
|
var ROOT_HELP3 = buildRootHelp2(COMMAND_SPECS2);
|
|
7440
7435
|
var COMMAND_HELP3 = Object.fromEntries(COMMAND_SPECS2.map((spec) => [spec.name, buildCommandHelp2(spec)]));
|
|
7441
7436
|
async function loadStripeApiModule() {
|
|
7442
|
-
return await import(pathToFileURL2(
|
|
7437
|
+
return await import(pathToFileURL2(join8(CONNECTOR_DIR2, "src", "api", "index.ts")).href);
|
|
7443
7438
|
}
|
|
7444
7439
|
async function loadStripeConfigModule() {
|
|
7445
|
-
return await import(pathToFileURL2(
|
|
7440
|
+
return await import(pathToFileURL2(join8(CONNECTOR_DIR2, "src", "utils", "config.ts")).href);
|
|
7446
7441
|
}
|
|
7447
7442
|
function extractGlobalArgs3(args) {
|
|
7448
7443
|
const remaining = [];
|
|
@@ -16498,15 +16493,15 @@ function loadConnectorVersions() {
|
|
|
16498
16493
|
versionsLoaded = true;
|
|
16499
16494
|
const thisDir = dirname4(fileURLToPath3(import.meta.url));
|
|
16500
16495
|
const candidates = [
|
|
16501
|
-
|
|
16502
|
-
|
|
16496
|
+
join9(thisDir, "..", "connectors"),
|
|
16497
|
+
join9(thisDir, "..", "..", "connectors")
|
|
16503
16498
|
];
|
|
16504
16499
|
const connectorsDir = candidates.find((d) => existsSync9(d));
|
|
16505
16500
|
if (!connectorsDir)
|
|
16506
16501
|
return;
|
|
16507
16502
|
for (const connector of CONNECTORS) {
|
|
16508
16503
|
try {
|
|
16509
|
-
const pkgPath =
|
|
16504
|
+
const pkgPath = join9(getConnectorPackagePath(connectorsDir, connector.name), "package.json");
|
|
16510
16505
|
if (existsSync9(pkgPath)) {
|
|
16511
16506
|
const pkg = JSON.parse(readFileSync4(pkgPath, "utf-8"));
|
|
16512
16507
|
connector.version = pkg.version || "0.0.0";
|
|
@@ -16521,14 +16516,14 @@ function loadConnectorVersions() {
|
|
|
16521
16516
|
}
|
|
16522
16517
|
// src/lib/installer.ts
|
|
16523
16518
|
import { existsSync as existsSync10, mkdirSync as mkdirSync5, readFileSync as readFileSync5, writeFileSync as writeFileSync4, readdirSync as readdirSync6, statSync as statSync4, rmSync as rmSync2 } from "fs";
|
|
16524
|
-
import { join as
|
|
16519
|
+
import { join as join10, dirname as dirname5 } from "path";
|
|
16525
16520
|
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
16526
16521
|
var __dirname4 = dirname5(fileURLToPath4(import.meta.url));
|
|
16527
16522
|
function resolveConnectorsDir() {
|
|
16528
|
-
const fromBin =
|
|
16523
|
+
const fromBin = join10(__dirname4, "..", "connectors");
|
|
16529
16524
|
if (existsSync10(fromBin))
|
|
16530
16525
|
return fromBin;
|
|
16531
|
-
const fromSrc =
|
|
16526
|
+
const fromSrc = join10(__dirname4, "..", "..", "connectors");
|
|
16532
16527
|
if (existsSync10(fromSrc))
|
|
16533
16528
|
return fromSrc;
|
|
16534
16529
|
return fromBin;
|
|
@@ -16538,13 +16533,13 @@ var PROJECT_CONNECTORS_DIRNAME = ".connectors";
|
|
|
16538
16533
|
var ENABLEMENT_MANIFEST_FILENAME = "manifest.json";
|
|
16539
16534
|
var ENABLEMENT_INDEX_FILENAME = "index.ts";
|
|
16540
16535
|
function getProjectConnectorsDir(targetDir) {
|
|
16541
|
-
return
|
|
16536
|
+
return join10(targetDir, PROJECT_CONNECTORS_DIRNAME);
|
|
16542
16537
|
}
|
|
16543
16538
|
function getEnablementManifestPath(targetDir) {
|
|
16544
|
-
return
|
|
16539
|
+
return join10(getProjectConnectorsDir(targetDir), ENABLEMENT_MANIFEST_FILENAME);
|
|
16545
16540
|
}
|
|
16546
16541
|
function getLegacyInstallPath(targetDir, name) {
|
|
16547
|
-
return
|
|
16542
|
+
return join10(getProjectConnectorsDir(targetDir), legacyConnectorName(name));
|
|
16548
16543
|
}
|
|
16549
16544
|
function loadEnablementManifest(targetDir) {
|
|
16550
16545
|
const manifestPath = getEnablementManifestPath(targetDir);
|
|
@@ -16572,7 +16567,7 @@ function getLegacyInstalledConnectors(targetDir) {
|
|
|
16572
16567
|
return [];
|
|
16573
16568
|
}
|
|
16574
16569
|
return readdirSync6(connectorsDir).filter((entry) => {
|
|
16575
|
-
const fullPath =
|
|
16570
|
+
const fullPath = join10(connectorsDir, entry);
|
|
16576
16571
|
return entry.startsWith("connect-") && statSync4(fullPath).isDirectory();
|
|
16577
16572
|
}).map((entry) => entry.replace("connect-", "")).sort();
|
|
16578
16573
|
}
|
|
@@ -16581,7 +16576,7 @@ function getEnabledConnectors(targetDir) {
|
|
|
16581
16576
|
return [...new Set([...manifestConnectors, ...getLegacyInstalledConnectors(targetDir)])].sort();
|
|
16582
16577
|
}
|
|
16583
16578
|
function updateConnectorsIndex(connectorsDir, connectors18) {
|
|
16584
|
-
const indexPath =
|
|
16579
|
+
const indexPath = join10(connectorsDir, ENABLEMENT_INDEX_FILENAME);
|
|
16585
16580
|
const connectorList = connectors18.map((connector) => ` "${connector}",`).join(`
|
|
16586
16581
|
`);
|
|
16587
16582
|
const content = `/**
|
|
@@ -16685,7 +16680,7 @@ function parseConnectorDocs(raw) {
|
|
|
16685
16680
|
function getConnectorDocs(name) {
|
|
16686
16681
|
const normalizedName = normalizeConnectorName(name);
|
|
16687
16682
|
const connectorPath = getConnectorPath(normalizedName);
|
|
16688
|
-
const claudeMdPath =
|
|
16683
|
+
const claudeMdPath = join10(connectorPath, "CLAUDE.md");
|
|
16689
16684
|
if (existsSync10(claudeMdPath)) {
|
|
16690
16685
|
return parseConnectorDocs(readFileSync5(claudeMdPath, "utf-8"));
|
|
16691
16686
|
}
|
|
@@ -16738,13 +16733,13 @@ function removeConnector(name, targetDir = process.cwd()) {
|
|
|
16738
16733
|
}
|
|
16739
16734
|
// src/lib/runner.ts
|
|
16740
16735
|
import { existsSync as existsSync12, readdirSync as readdirSync8 } from "fs";
|
|
16741
|
-
import { join as
|
|
16736
|
+
import { join as join12, dirname as dirname6 } from "path";
|
|
16742
16737
|
import { fileURLToPath as fileURLToPath5 } from "url";
|
|
16743
16738
|
import { spawn } from "child_process";
|
|
16744
16739
|
|
|
16745
16740
|
// src/server/auth.ts
|
|
16746
16741
|
import { chmodSync, existsSync as existsSync11, readFileSync as readFileSync6, writeFileSync as writeFileSync5, mkdirSync as mkdirSync6, readdirSync as readdirSync7, rmSync as rmSync3, statSync as statSync5 } from "fs";
|
|
16747
|
-
import { join as
|
|
16742
|
+
import { join as join11 } from "path";
|
|
16748
16743
|
var oauthStateStore = new Map;
|
|
16749
16744
|
var GOOGLE_SCOPES = {
|
|
16750
16745
|
gmail: [
|
|
@@ -16808,7 +16803,7 @@ function getConnectorConfigReadDirs2(name) {
|
|
|
16808
16803
|
function getCurrentProfile2(name) {
|
|
16809
16804
|
name = normalizeConnectorName(name);
|
|
16810
16805
|
for (const configDir of getConnectorConfigReadDirs2(name)) {
|
|
16811
|
-
const currentProfileFile =
|
|
16806
|
+
const currentProfileFile = join11(configDir, "current_profile");
|
|
16812
16807
|
if (existsSync11(currentProfileFile)) {
|
|
16813
16808
|
try {
|
|
16814
16809
|
return readFileSync6(currentProfileFile, "utf-8").trim() || "default";
|
|
@@ -16822,13 +16817,13 @@ function getCurrentProfile2(name) {
|
|
|
16822
16817
|
function loadProfileConfigFromDir(configDir, profile) {
|
|
16823
16818
|
let flatConfig = {};
|
|
16824
16819
|
let dirConfig = {};
|
|
16825
|
-
const profileFile =
|
|
16820
|
+
const profileFile = join11(configDir, "profiles", `${profile}.json`);
|
|
16826
16821
|
if (existsSync11(profileFile)) {
|
|
16827
16822
|
try {
|
|
16828
16823
|
flatConfig = JSON.parse(readFileSync6(profileFile, "utf-8"));
|
|
16829
16824
|
} catch {}
|
|
16830
16825
|
}
|
|
16831
|
-
const profileDirConfig =
|
|
16826
|
+
const profileDirConfig = join11(configDir, "profiles", profile, "config.json");
|
|
16832
16827
|
if (existsSync11(profileDirConfig)) {
|
|
16833
16828
|
try {
|
|
16834
16829
|
dirConfig = JSON.parse(readFileSync6(profileDirConfig, "utf-8"));
|
|
@@ -16849,7 +16844,7 @@ function loadTokens3(name) {
|
|
|
16849
16844
|
name = normalizeConnectorName(name);
|
|
16850
16845
|
const profile = getCurrentProfile2(name);
|
|
16851
16846
|
for (const configDir of getConnectorConfigReadDirs2(name)) {
|
|
16852
|
-
const tokensFile =
|
|
16847
|
+
const tokensFile = join11(configDir, "profiles", profile, "tokens.json");
|
|
16853
16848
|
if (existsSync11(tokensFile)) {
|
|
16854
16849
|
try {
|
|
16855
16850
|
return JSON.parse(readFileSync6(tokensFile, "utf-8"));
|
|
@@ -16878,7 +16873,7 @@ function getEnvVars(name) {
|
|
|
16878
16873
|
function getOAuthConfig(name) {
|
|
16879
16874
|
name = normalizeConnectorName(name);
|
|
16880
16875
|
for (const configDir of getConnectorConfigReadDirs2(name)) {
|
|
16881
|
-
const credentialsFile =
|
|
16876
|
+
const credentialsFile = join11(configDir, "credentials.json");
|
|
16882
16877
|
if (existsSync11(credentialsFile)) {
|
|
16883
16878
|
try {
|
|
16884
16879
|
const creds = JSON.parse(readFileSync6(credentialsFile, "utf-8"));
|
|
@@ -16896,10 +16891,10 @@ function getOAuthConfig(name) {
|
|
|
16896
16891
|
// src/lib/runner.ts
|
|
16897
16892
|
var __dirname5 = dirname6(fileURLToPath5(import.meta.url));
|
|
16898
16893
|
function resolveConnectorsDir2() {
|
|
16899
|
-
const fromBin =
|
|
16894
|
+
const fromBin = join12(__dirname5, "..", "connectors");
|
|
16900
16895
|
if (existsSync12(fromBin))
|
|
16901
16896
|
return fromBin;
|
|
16902
|
-
const fromSrc =
|
|
16897
|
+
const fromSrc = join12(__dirname5, "..", "..", "connectors");
|
|
16903
16898
|
if (existsSync12(fromSrc))
|
|
16904
16899
|
return fromSrc;
|
|
16905
16900
|
return fromBin;
|
|
@@ -16976,7 +16971,7 @@ function buildEnvWithCredentials(connectorName, baseEnv) {
|
|
|
16976
16971
|
function getConnectorCliPath(name) {
|
|
16977
16972
|
const safeName = normalizeConnectorName(name).replace(/[^a-z0-9-]/g, "");
|
|
16978
16973
|
const connectorDir = getConnectorPackagePath(CONNECTORS_DIR2, safeName);
|
|
16979
|
-
const cliPath =
|
|
16974
|
+
const cliPath = join12(connectorDir, "src", "cli", "index.ts");
|
|
16980
16975
|
if (existsSync12(cliPath))
|
|
16981
16976
|
return cliPath;
|
|
16982
16977
|
return null;
|