@hasna/connectors 1.1.4 → 1.1.5
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/bin/index.js +1 -1
- package/bin/mcp.js +1 -1
- package/connectors/connect-3scribe/src/utils/config.ts +2 -2
- package/connectors/connect-7todos/src/utils/config.ts +2 -2
- package/connectors/connect-ably/src/utils/config.ts +2 -2
- package/connectors/connect-abstract/src/utils/config.ts +2 -2
- package/connectors/connect-abuselpdb/src/utils/config.ts +2 -2
- package/connectors/connect-accelo/src/utils/config.ts +2 -2
- package/connectors/connect-accredible/src/utils/config.ts +2 -2
- package/connectors/connect-accurai/src/utils/config.ts +2 -2
- package/connectors/connect-accuranker/src/utils/config.ts +2 -2
- package/connectors/connect-acquire/src/utils/config.ts +2 -2
- package/connectors/connect-actionnetwork/src/utils/config.ts +2 -2
- package/connectors/connect-activecampaign/src/utils/config.ts +2 -2
- package/connectors/connect-activetrail/src/utils/config.ts +2 -2
- package/connectors/connect-adalo/src/utils/config.ts +2 -2
- package/connectors/connect-adobe/src/utils/config.ts +2 -2
- package/connectors/connect-adroll/src/utils/config.ts +2 -2
- package/connectors/connect-affinity/src/utils/config.ts +2 -2
- package/connectors/connect-agent/src/utils/config.ts +2 -2
- package/connectors/connect-agilecrm/src/utils/config.ts +2 -2
- package/connectors/connect-aiagenttool/src/utils/config.ts +2 -2
- package/connectors/connect-airbrake/src/utils/config.ts +2 -2
- package/connectors/connect-airnow/src/utils/config.ts +2 -2
- package/connectors/connect-airtable/src/utils/config.ts +2 -2
- package/connectors/connect-airtop/src/utils/config.ts +2 -2
- package/connectors/connect-aitableai/src/utils/config.ts +2 -2
- package/connectors/connect-alchemy/src/utils/config.ts +2 -2
- package/connectors/connect-alerty/src/utils/config.ts +2 -2
- package/connectors/connect-alienvault/src/utils/config.ts +2 -2
- package/connectors/connect-alphamoon/src/utils/config.ts +2 -2
- package/connectors/connect-alttextai/src/utils/config.ts +2 -2
- package/connectors/connect-amadeus/src/utils/config.ts +1 -1
- package/connectors/connect-amazon/src/utils/config.ts +2 -2
- package/connectors/connect-amilia/src/utils/config.ts +2 -2
- package/connectors/connect-amplitude/src/utils/config.ts +2 -2
- package/connectors/connect-amqpsender/src/utils/config.ts +2 -2
- package/connectors/connect-announcekit/src/utils/config.ts +2 -2
- package/connectors/connect-anyscale/src/utils/config.ts +1 -1
- package/connectors/connect-apiary/src/utils/config.ts +2 -2
- package/connectors/connect-apiflash/src/utils/config.ts +2 -2
- package/connectors/connect-apitemplateio/src/utils/config.ts +2 -2
- package/connectors/connect-apptivegrid/src/utils/config.ts +2 -2
- package/connectors/connect-asana/src/utils/config.ts +2 -2
- package/connectors/connect-assemblyai/src/utils/config.ts +1 -1
- package/connectors/connect-auth0/src/utils/config.ts +2 -2
- package/connectors/connect-autom/src/utils/config.ts +2 -2
- package/connectors/connect-automizy/src/utils/config.ts +2 -2
- package/connectors/connect-autopilot/src/utils/config.ts +2 -2
- package/connectors/connect-awscognito/src/utils/config.ts +2 -2
- package/connectors/connect-azureaisearchvectorstore/src/utils/config.ts +2 -2
- package/connectors/connect-azurecosmosdb/src/utils/config.ts +2 -2
- package/connectors/connect-azureopenaichatmodel/src/utils/config.ts +2 -2
- package/connectors/connect-azurestorage/src/utils/config.ts +2 -2
- package/connectors/connect-badgermaps/src/utils/config.ts +2 -2
- package/connectors/connect-bamboohr/src/utils/config.ts +2 -2
- package/connectors/connect-bandwidth/src/utils/config.ts +2 -2
- package/connectors/connect-bannerbear/src/utils/config.ts +2 -2
- package/connectors/connect-baserow/src/utils/config.ts +2 -2
- package/connectors/connect-baseten/src/utils/config.ts +1 -1
- package/connectors/connect-beeminder/src/utils/config.ts +2 -2
- package/connectors/connect-benchmarkemail/src/utils/config.ts +2 -2
- package/connectors/connect-betterproposals/src/utils/config.ts +2 -2
- package/connectors/connect-bigcartel/src/utils/config.ts +2 -2
- package/connectors/connect-bigdatacloud/src/utils/config.ts +2 -2
- package/connectors/connect-bigml/src/utils/config.ts +2 -2
- package/connectors/connect-bitly/src/utils/config.ts +2 -2
- package/connectors/connect-bitrix24/src/utils/config.ts +2 -2
- package/connectors/connect-bitwarden/src/utils/config.ts +2 -2
- package/connectors/connect-blaze/src/utils/config.ts +2 -2
- package/connectors/connect-blockchainexchange/src/utils/config.ts +2 -2
- package/connectors/connect-bloock/src/utils/config.ts +2 -2
- package/connectors/connect-bot9/src/utils/config.ts +2 -2
- package/connectors/connect-botbaba/src/utils/config.ts +2 -2
- package/connectors/connect-botifier/src/utils/config.ts +2 -2
- package/connectors/connect-botiumbox/src/utils/config.ts +2 -2
- package/connectors/connect-botsonic/src/utils/config.ts +2 -2
- package/connectors/connect-botstar/src/utils/config.ts +2 -2
- package/connectors/connect-box/src/utils/config.ts +2 -2
- package/connectors/connect-brainpodai/src/utils/config.ts +2 -2
- package/connectors/connect-brandblast/src/utils/config.ts +2 -2
- package/connectors/connect-brandfetch/src/utils/config.ts +2 -2
- package/connectors/connect-brandmentions/src/utils/config.ts +2 -2
- package/connectors/connect-breezyhr/src/utils/config.ts +2 -2
- package/connectors/connect-brevo/src/utils/config.ts +2 -2
- package/connectors/connect-brex/src/utils/config.ts +2 -2
- package/connectors/connect-browseai/src/utils/config.ts +2 -2
- package/connectors/connect-browserless/src/utils/config.ts +2 -2
- package/connectors/connect-browserstack/src/utils/config.ts +2 -2
- package/connectors/connect-browseruse/src/utils/config.ts +2 -2
- package/connectors/connect-bubble/src/utils/config.ts +2 -2
- package/connectors/connect-bugbug/src/utils/config.ts +2 -2
- package/connectors/connect-bugfender/src/utils/config.ts +2 -2
- package/connectors/connect-bugherd/src/utils/config.ts +2 -2
- package/connectors/connect-bugpilot/src/utils/config.ts +2 -2
- package/connectors/connect-bugreplay/src/utils/config.ts +2 -2
- package/connectors/connect-bugshot/src/utils/config.ts +2 -2
- package/connectors/connect-buildkite/src/utils/config.ts +2 -2
- package/connectors/connect-bunnycdn/src/utils/config.ts +2 -2
- package/connectors/connect-calendarhero/src/utils/config.ts +2 -2
- package/connectors/connect-calendly/src/utils/config.ts +2 -2
- package/connectors/connect-canvas/src/utils/config.ts +2 -2
- package/connectors/connect-capsule/src/utils/config.ts +2 -2
- package/connectors/connect-carbonblack/src/utils/config.ts +2 -2
- package/connectors/connect-cerebras/src/utils/config.ts +1 -1
- package/connectors/connect-chaindesk/src/utils/config.ts +2 -2
- package/connectors/connect-chargebee/src/utils/config.ts +2 -2
- package/connectors/connect-chargeover/src/utils/config.ts +2 -2
- package/connectors/connect-chargify/src/utils/config.ts +2 -2
- package/connectors/connect-chatbase/src/utils/config.ts +2 -2
- package/connectors/connect-chatling/src/utils/config.ts +2 -2
- package/connectors/connect-chatmasters/src/utils/config.ts +2 -2
- package/connectors/connect-chatrace/src/utils/config.ts +2 -2
- package/connectors/connect-chatsonic/src/utils/config.ts +2 -2
- package/connectors/connect-chekhub/src/utils/config.ts +2 -2
- package/connectors/connect-chromavectorstore/src/utils/config.ts +2 -2
- package/connectors/connect-circleci/src/utils/config.ts +2 -2
- package/connectors/connect-ciscomeraki/src/utils/config.ts +2 -2
- package/connectors/connect-ciscosecureendpoint/src/utils/config.ts +2 -2
- package/connectors/connect-ciscoumbrella/src/utils/config.ts +2 -2
- package/connectors/connect-ciscowebex/src/utils/config.ts +2 -2
- package/connectors/connect-citrixadc/src/utils/config.ts +2 -2
- package/connectors/connect-clappia/src/utils/config.ts +2 -2
- package/connectors/connect-clarifai/src/utils/config.ts +2 -2
- package/connectors/connect-clearbit/src/utils/config.ts +2 -2
- package/connectors/connect-cleverreach/src/utils/config.ts +2 -2
- package/connectors/connect-clickbank/src/utils/config.ts +2 -2
- package/connectors/connect-clicksendsms/src/utils/config.ts +2 -2
- package/connectors/connect-clickup/src/utils/config.ts +1 -1
- package/connectors/connect-clockify/src/utils/config.ts +2 -2
- package/connectors/connect-cloozo/src/utils/config.ts +2 -2
- package/connectors/connect-cloud66/src/utils/config.ts +2 -2
- package/connectors/connect-cloudboost/src/utils/config.ts +2 -2
- package/connectors/connect-cloudconvert/src/utils/config.ts +2 -2
- package/connectors/connect-cloudlayer/src/utils/config.ts +2 -2
- package/connectors/connect-cloudshare/src/utils/config.ts +2 -2
- package/connectors/connect-cloze/src/utils/config.ts +2 -2
- package/connectors/connect-cockpit/src/utils/config.ts +2 -2
- package/connectors/connect-coda/src/utils/config.ts +2 -2
- package/connectors/connect-codeclimate/src/utils/config.ts +2 -2
- package/connectors/connect-codefresh/src/utils/config.ts +2 -2
- package/connectors/connect-cody/src/utils/config.ts +2 -2
- package/connectors/connect-cohere/src/utils/config.ts +2 -2
- package/connectors/connect-coinbase/src/utils/config.ts +2 -2
- package/connectors/connect-coingecko/src/utils/config.ts +2 -2
- package/connectors/connect-collegefootballdata/src/utils/config.ts +2 -2
- package/connectors/connect-configcat/src/utils/config.ts +2 -2
- package/connectors/connect-confluence/src/utils/config.ts +2 -2
- package/connectors/connect-confluent/src/utils/config.ts +2 -2
- package/connectors/connect-contactout/src/utils/config.ts +2 -2
- package/connectors/connect-contentful/src/utils/config.ts +2 -2
- package/connectors/connect-convertapi/src/utils/config.ts +2 -2
- package/connectors/connect-convertkit/src/utils/config.ts +2 -2
- package/connectors/connect-convi/src/utils/config.ts +2 -2
- package/connectors/connect-copper/src/utils/config.ts +2 -2
- package/connectors/connect-copyai/src/utils/config.ts +2 -2
- package/connectors/connect-corsizio/src/utils/config.ts +2 -2
- package/connectors/connect-cortex/src/utils/config.ts +2 -2
- package/connectors/connect-cradlai/src/utils/config.ts +2 -2
- package/connectors/connect-craftdraft/src/utils/config.ts +2 -2
- package/connectors/connect-cratedb/src/utils/config.ts +2 -2
- package/connectors/connect-crisp/src/utils/config.ts +2 -2
- package/connectors/connect-cronly/src/utils/config.ts +2 -2
- package/connectors/connect-crossmint/src/utils/config.ts +2 -2
- package/connectors/connect-crowddev/src/utils/config.ts +2 -2
- package/connectors/connect-crowdin/src/utils/config.ts +2 -2
- package/connectors/connect-crowdpower/src/utils/config.ts +2 -2
- package/connectors/connect-crowdstrike/src/utils/config.ts +2 -2
- package/connectors/connect-cryptolens/src/utils/config.ts +2 -2
- package/connectors/connect-currents/src/utils/config.ts +2 -2
- package/connectors/connect-customerio/src/utils/config.ts +2 -2
- package/connectors/connect-customeriq/src/utils/config.ts +2 -2
- package/connectors/connect-daffy/src/utils/config.ts +2 -2
- package/connectors/connect-danteai/src/utils/config.ts +2 -2
- package/connectors/connect-darkskyapi/src/utils/config.ts +2 -2
- package/connectors/connect-dasha/src/utils/config.ts +2 -2
- package/connectors/connect-databox/src/utils/config.ts +2 -2
- package/connectors/connect-databricks/src/utils/config.ts +2 -2
- package/connectors/connect-datadog/src/utils/config.ts +2 -2
- package/connectors/connect-datarobot/src/utils/config.ts +2 -2
- package/connectors/connect-datasoap/src/utils/config.ts +2 -2
- package/connectors/connect-datumbox/src/utils/config.ts +2 -2
- package/connectors/connect-dayschedule/src/utils/config.ts +2 -2
- package/connectors/connect-deepgram/src/utils/config.ts +1 -1
- package/connectors/connect-deepinfra/src/utils/config.ts +1 -1
- package/connectors/connect-deepl/src/utils/config.ts +2 -2
- package/connectors/connect-deepseek/src/utils/config.ts +1 -1
- package/connectors/connect-demio/src/utils/config.ts +2 -2
- package/connectors/connect-descript/src/utils/config.ts +2 -2
- package/connectors/connect-detrack/src/utils/config.ts +2 -2
- package/connectors/connect-devcycle/src/utils/config.ts +2 -2
- package/connectors/connect-dhl/src/utils/config.ts +2 -2
- package/connectors/connect-dialzara/src/utils/config.ts +2 -2
- package/connectors/connect-diddoai/src/utils/config.ts +2 -2
- package/connectors/connect-diffy/src/utils/config.ts +2 -2
- package/connectors/connect-digicert/src/utils/config.ts +2 -2
- package/connectors/connect-digitalocean/src/utils/config.ts +2 -2
- package/connectors/connect-discourse/src/utils/config.ts +2 -2
- package/connectors/connect-disqus/src/utils/config.ts +2 -2
- package/connectors/connect-dockcerts/src/utils/config.ts +2 -2
- package/connectors/connect-docparser/src/utils/config.ts +2 -2
- package/connectors/connect-docsbotai/src/utils/config.ts +2 -2
- package/connectors/connect-docupilot/src/utils/config.ts +2 -2
- package/connectors/connect-docusign/src/utils/config.ts +1 -1
- package/connectors/connect-docuwriter/src/utils/config.ts +2 -2
- package/connectors/connect-dokan/src/utils/config.ts +2 -2
- package/connectors/connect-domo/src/utils/config.ts +2 -2
- package/connectors/connect-draftable/src/utils/config.ts +2 -2
- package/connectors/connect-drift/src/utils/config.ts +2 -2
- package/connectors/connect-dropbox/src/utils/config.ts +2 -2
- package/connectors/connect-dropcontact/src/utils/config.ts +2 -2
- package/connectors/connect-droxy/src/utils/config.ts +2 -2
- package/connectors/connect-dynatrace/src/utils/config.ts +2 -2
- package/connectors/connect-eartho/src/utils/config.ts +2 -2
- package/connectors/connect-easyship/src/utils/config.ts +2 -2
- package/connectors/connect-echowin/src/utils/config.ts +2 -2
- package/connectors/connect-ecwid/src/utils/config.ts +2 -2
- package/connectors/connect-edenai/src/utils/config.ts +2 -2
- package/connectors/connect-egoi/src/utils/config.ts +2 -2
- package/connectors/connect-elasticsearch/src/utils/config.ts +2 -2
- package/connectors/connect-elasticsecurity/src/utils/config.ts +2 -2
- package/connectors/connect-elmah/src/utils/config.ts +2 -2
- package/connectors/connect-embedai/src/utils/config.ts +2 -2
- package/connectors/connect-emelia/src/utils/config.ts +2 -2
- package/connectors/connect-empsing/src/utils/config.ts +2 -2
- package/connectors/connect-engati/src/utils/config.ts +2 -2
- package/connectors/connect-enormail/src/utils/config.ts +2 -2
- package/connectors/connect-enterpret/src/utils/config.ts +2 -2
- package/connectors/connect-envoy/src/utils/config.ts +2 -2
- package/connectors/connect-epo/src/utils/config.ts +2 -2
- package/connectors/connect-erpnext/src/utils/config.ts +2 -2
- package/connectors/connect-esendex/src/utils/config.ts +2 -2
- package/connectors/connect-evervault/src/utils/config.ts +2 -2
- package/connectors/connect-evolphinzoom/src/utils/config.ts +2 -2
- package/connectors/connect-f5bigip/src/utils/config.ts +2 -2
- package/connectors/connect-fal/src/utils/config.ts +1 -1
- package/connectors/connect-faraday/src/utils/config.ts +2 -2
- package/connectors/connect-faros/src/utils/config.ts +2 -2
- package/connectors/connect-fastbots/src/utils/config.ts +2 -2
- package/connectors/connect-fathom/src/utils/config.ts +2 -2
- package/connectors/connect-filemaker/src/utils/config.ts +2 -2
- package/connectors/connect-filescan/src/utils/config.ts +2 -2
- package/connectors/connect-fireworks/src/utils/config.ts +1 -1
- package/connectors/connect-firmao/src/utils/config.ts +2 -2
- package/connectors/connect-fitbit/src/utils/config.ts +2 -2
- package/connectors/connect-flagship/src/utils/config.ts +2 -2
- package/connectors/connect-float/src/utils/config.ts +2 -2
- package/connectors/connect-flotiq/src/utils/config.ts +2 -2
- package/connectors/connect-flow/src/utils/config.ts +2 -2
- package/connectors/connect-fluentsupport/src/utils/config.ts +2 -2
- package/connectors/connect-focuster/src/utils/config.ts +2 -2
- package/connectors/connect-formcarry/src/utils/config.ts +2 -2
- package/connectors/connect-formdesk/src/utils/config.ts +2 -2
- package/connectors/connect-formsite/src/utils/config.ts +2 -2
- package/connectors/connect-formsonfire/src/utils/config.ts +2 -2
- package/connectors/connect-formstackdocuments/src/utils/config.ts +2 -2
- package/connectors/connect-fortinetfortigate/src/utils/config.ts +2 -2
- package/connectors/connect-foursquare/src/utils/config.ts +2 -2
- package/connectors/connect-freedictionary/src/utils/config.ts +2 -2
- package/connectors/connect-freshdesk/src/utils/config.ts +2 -2
- package/connectors/connect-freshping/src/utils/config.ts +2 -2
- package/connectors/connect-freshservice/src/utils/config.ts +2 -2
- package/connectors/connect-freshworkscrm/src/utils/config.ts +2 -2
- package/connectors/connect-fullcontact/src/utils/config.ts +2 -2
- package/connectors/connect-fusioo/src/utils/config.ts +2 -2
- package/connectors/connect-gali/src/utils/config.ts +2 -2
- package/connectors/connect-gatekeeper/src/utils/config.ts +2 -2
- package/connectors/connect-genderapi/src/utils/config.ts +2 -2
- package/connectors/connect-getresponse/src/utils/config.ts +2 -2
- package/connectors/connect-getscreenshot/src/utils/config.ts +2 -2
- package/connectors/connect-ghost/src/utils/config.ts +2 -2
- package/connectors/connect-giphy/src/utils/config.ts +2 -2
- package/connectors/connect-gitea/src/utils/config.ts +2 -2
- package/connectors/connect-gitlab/src/utils/config.ts +2 -2
- package/connectors/connect-gleap/src/utils/config.ts +2 -2
- package/connectors/connect-gocanvas/src/utils/config.ts +2 -2
- package/connectors/connect-godaddy/src/utils/config.ts +2 -2
- package/connectors/connect-gong/src/utils/config.ts +2 -2
- package/connectors/connect-googleads/src/utils/config.ts +1 -1
- package/connectors/connect-googleanalytics/src/utils/config.ts +2 -2
- package/connectors/connect-googlebigquery/src/utils/config.ts +2 -2
- package/connectors/connect-googlebooks/src/utils/config.ts +2 -2
- package/connectors/connect-googlebusinessprofile/src/utils/config.ts +2 -2
- package/connectors/connect-googlechat/src/utils/config.ts +2 -2
- package/connectors/connect-googledrive/src/cli/index.ts +156 -2
- package/connectors/connect-googleforms/src/utils/config.ts +2 -2
- package/connectors/connect-googleperspective/src/utils/config.ts +2 -2
- package/connectors/connect-googlephotos/src/utils/config.ts +2 -2
- package/connectors/connect-googleslides/src/utils/config.ts +2 -2
- package/connectors/connect-googletables/src/utils/config.ts +2 -2
- package/connectors/connect-googletranslate/src/utils/config.ts +2 -2
- package/connectors/connect-googlevertexai/src/utils/config.ts +2 -2
- package/connectors/connect-gotify/src/utils/config.ts +2 -2
- package/connectors/connect-gotowebinar/src/utils/config.ts +2 -2
- package/connectors/connect-gptea/src/utils/config.ts +2 -2
- package/connectors/connect-grafana/src/utils/config.ts +2 -2
- package/connectors/connect-grain/src/utils/config.ts +2 -2
- package/connectors/connect-gravityforms/src/utils/config.ts +2 -2
- package/connectors/connect-grist/src/utils/config.ts +2 -2
- package/connectors/connect-groq/src/utils/config.ts +1 -1
- package/connectors/connect-growbots/src/utils/config.ts +2 -2
- package/connectors/connect-gumroad/src/utils/config.ts +2 -2
- package/connectors/connect-gupshup/src/utils/config.ts +2 -2
- package/connectors/connect-guru/src/utils/config.ts +2 -2
- package/connectors/connect-hackernews/src/utils/config.ts +2 -2
- package/connectors/connect-halopsa/src/utils/config.ts +2 -2
- package/connectors/connect-handwrytten/src/utils/config.ts +2 -2
- package/connectors/connect-hansei/src/utils/config.ts +2 -2
- package/connectors/connect-harrypotterapi/src/utils/config.ts +2 -2
- package/connectors/connect-harvest/src/utils/config.ts +2 -2
- package/connectors/connect-headlesstesting/src/utils/config.ts +2 -2
- package/connectors/connect-helcim/src/utils/config.ts +2 -2
- package/connectors/connect-hellosign/src/utils/config.ts +1 -1
- package/connectors/connect-helpscout/src/utils/config.ts +2 -2
- package/connectors/connect-heysummit/src/utils/config.ts +2 -2
- package/connectors/connect-highlevel/src/utils/config.ts +2 -2
- package/connectors/connect-homeassistant/src/utils/config.ts +2 -2
- package/connectors/connect-hubplanner/src/utils/config.ts +2 -2
- package/connectors/connect-hubspot/src/utils/config.ts +2 -2
- package/connectors/connect-humanticai/src/utils/config.ts +2 -2
- package/connectors/connect-hunter/src/utils/config.ts +2 -2
- package/connectors/connect-hybridanalysis/src/utils/config.ts +2 -2
- package/connectors/connect-iauditorbysafetyculture/src/utils/config.ts +2 -2
- package/connectors/connect-idealpostcodes/src/utils/config.ts +2 -2
- package/connectors/connect-idealspot/src/utils/config.ts +2 -2
- package/connectors/connect-ideogram/src/utils/config.ts +1 -1
- package/connectors/connect-ideta/src/utils/config.ts +2 -2
- package/connectors/connect-imgbb/src/utils/config.ts +2 -2
- package/connectors/connect-imgur/src/utils/config.ts +2 -2
- package/connectors/connect-impervawaf/src/utils/config.ts +2 -2
- package/connectors/connect-impira/src/utils/config.ts +2 -2
- package/connectors/connect-industryselect/src/utils/config.ts +2 -2
- package/connectors/connect-influxdbcloud/src/utils/config.ts +2 -2
- package/connectors/connect-infolobby/src/utils/config.ts +2 -2
- package/connectors/connect-instabot/src/utils/config.ts +2 -2
- package/connectors/connect-instabug/src/utils/config.ts +2 -2
- package/connectors/connect-intakeq/src/utils/config.ts +2 -2
- package/connectors/connect-intercom/src/utils/config.ts +1 -1
- package/connectors/connect-invoiced/src/utils/config.ts +2 -2
- package/connectors/connect-invoiceninja/src/utils/config.ts +2 -2
- package/connectors/connect-ip2location/src/utils/config.ts +2 -2
- package/connectors/connect-ipinfo/src/utils/config.ts +2 -2
- package/connectors/connect-ipregistry/src/utils/config.ts +2 -2
- package/connectors/connect-irisdfir/src/utils/config.ts +2 -2
- package/connectors/connect-isn/src/utils/config.ts +2 -2
- package/connectors/connect-iterable/src/utils/config.ts +2 -2
- package/connectors/connect-jama/src/utils/config.ts +2 -2
- package/connectors/connect-jasper/src/utils/config.ts +2 -2
- package/connectors/connect-jenkins/src/utils/config.ts +2 -2
- package/connectors/connect-jinaai/src/utils/config.ts +2 -2
- package/connectors/connect-jira/src/utils/config.ts +1 -1
- package/connectors/connect-kadoa/src/utils/config.ts +2 -2
- package/connectors/connect-kafka/src/utils/config.ts +2 -2
- package/connectors/connect-kaggle/src/utils/config.ts +2 -2
- package/connectors/connect-kanbantool/src/utils/config.ts +2 -2
- package/connectors/connect-karbon/src/utils/config.ts +2 -2
- package/connectors/connect-keap/src/utils/config.ts +2 -2
- package/connectors/connect-keygen/src/utils/config.ts +2 -2
- package/connectors/connect-keyzy/src/utils/config.ts +2 -2
- package/connectors/connect-kibana/src/utils/config.ts +2 -2
- package/connectors/connect-kitemaker/src/utils/config.ts +2 -2
- package/connectors/connect-klaviyo/src/utils/config.ts +2 -2
- package/connectors/connect-klazify/src/utils/config.ts +2 -2
- package/connectors/connect-kling/src/utils/config.ts +1 -1
- package/connectors/connect-knack/src/utils/config.ts +2 -2
- package/connectors/connect-knowbe4/src/utils/config.ts +2 -2
- package/connectors/connect-kobotoolbox/src/utils/config.ts +2 -2
- package/connectors/connect-kraftful/src/utils/config.ts +2 -2
- package/connectors/connect-lagrowthmachine/src/utils/config.ts +2 -2
- package/connectors/connect-lambdatest/src/utils/config.ts +2 -2
- package/connectors/connect-landbot/src/utils/config.ts +2 -2
- package/connectors/connect-laposta/src/utils/config.ts +2 -2
- package/connectors/connect-launch27/src/utils/config.ts +2 -2
- package/connectors/connect-launchdarkly/src/utils/config.ts +2 -2
- package/connectors/connect-ldap/src/utils/config.ts +2 -2
- package/connectors/connect-leadboxer/src/utils/config.ts +2 -2
- package/connectors/connect-leadpops/src/utils/config.ts +2 -2
- package/connectors/connect-lemlist/src/utils/config.ts +2 -2
- package/connectors/connect-lemonsqueezy/src/utils/config.ts +2 -2
- package/connectors/connect-leonardo/src/utils/config.ts +1 -1
- package/connectors/connect-lepton/src/utils/config.ts +1 -1
- package/connectors/connect-letsenhance/src/utils/config.ts +2 -2
- package/connectors/connect-libraria/src/utils/config.ts +2 -2
- package/connectors/connect-lighthouse/src/utils/config.ts +2 -2
- package/connectors/connect-limego/src/utils/config.ts +2 -2
- package/connectors/connect-line/src/utils/config.ts +2 -2
- package/connectors/connect-linear/src/utils/config.ts +2 -2
- package/connectors/connect-lingvanex/src/utils/config.ts +2 -2
- package/connectors/connect-linkedin/src/utils/config.ts +1 -1
- package/connectors/connect-linkish/src/utils/config.ts +2 -2
- package/connectors/connect-linode/src/utils/config.ts +2 -2
- package/connectors/connect-liveagent/src/utils/config.ts +2 -2
- package/connectors/connect-localazy/src/utils/config.ts +2 -2
- package/connectors/connect-loginradius/src/utils/config.ts +2 -2
- package/connectors/connect-lokalise/src/utils/config.ts +2 -2
- package/connectors/connect-lonescale/src/utils/config.ts +2 -2
- package/connectors/connect-lucidchart/src/utils/config.ts +2 -2
- package/connectors/connect-luma/src/utils/config.ts +1 -1
- package/connectors/connect-magento2/src/utils/config.ts +2 -2
- package/connectors/connect-mailcheck/src/utils/config.ts +2 -2
- package/connectors/connect-mailchimp/src/utils/config.ts +2 -2
- package/connectors/connect-mailerlite/src/utils/config.ts +2 -2
- package/connectors/connect-mailersend/src/utils/config.ts +2 -2
- package/connectors/connect-mailgun/src/utils/config.ts +2 -2
- package/connectors/connect-mailify/src/utils/config.ts +2 -2
- package/connectors/connect-mailjet/src/utils/config.ts +2 -2
- package/connectors/connect-mailmodo/src/utils/config.ts +2 -2
- package/connectors/connect-malcore/src/utils/config.ts +2 -2
- package/connectors/connect-mandrill/src/utils/config.ts +2 -2
- package/connectors/connect-marcomrobot/src/utils/config.ts +2 -2
- package/connectors/connect-marketingmasterio/src/utils/config.ts +2 -2
- package/connectors/connect-marketplacer/src/utils/config.ts +2 -2
- package/connectors/connect-marketstack/src/utils/config.ts +2 -2
- package/connectors/connect-mastodon/src/utils/config.ts +2 -2
- package/connectors/connect-matrix/src/utils/config.ts +2 -2
- package/connectors/connect-mattermost/src/utils/config.ts +2 -2
- package/connectors/connect-mautic/src/utils/config.ts +2 -2
- package/connectors/connect-mav/src/utils/config.ts +2 -2
- package/connectors/connect-maverick/src/utils/config.ts +2 -2
- package/connectors/connect-medium/src/utils/config.ts +2 -2
- package/connectors/connect-mem/src/utils/config.ts +2 -2
- package/connectors/connect-messagebird/src/utils/config.ts +2 -2
- package/connectors/connect-metabase/src/utils/config.ts +2 -2
- package/connectors/connect-mews/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftazuremonitor/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftdynamics365businesscentralapi/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftdynamicscrm/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftentraid/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftentraidazureactivedirectory/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftexcel/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftgraphsecurity/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftonedrive/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftoutlook/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftsharepoint/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftsql/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftteams/src/utils/config.ts +2 -2
- package/connectors/connect-microsoftteamsadmin/src/utils/config.ts +2 -2
- package/connectors/connect-microsofttodo/src/utils/config.ts +2 -2
- package/connectors/connect-miestro/src/utils/config.ts +2 -2
- package/connectors/connect-mindee/src/utils/config.ts +2 -2
- package/connectors/connect-miro/src/utils/config.ts +2 -2
- package/connectors/connect-misp/src/utils/config.ts +2 -2
- package/connectors/connect-missive/src/utils/config.ts +2 -2
- package/connectors/connect-mist/src/utils/config.ts +2 -2
- package/connectors/connect-mocean/src/utils/config.ts +2 -2
- package/connectors/connect-modal/src/utils/config.ts +1 -1
- package/connectors/connect-monday/src/utils/config.ts +2 -2
- package/connectors/connect-mongodb/src/utils/config.ts +2 -2
- package/connectors/connect-monicacrm/src/utils/config.ts +2 -2
- package/connectors/connect-moonclerk/src/utils/config.ts +2 -2
- package/connectors/connect-moonmail/src/utils/config.ts +2 -2
- package/connectors/connect-morph/src/utils/config.ts +2 -2
- package/connectors/connect-mqtt/src/utils/config.ts +2 -2
- package/connectors/connect-msg91/src/utils/config.ts +2 -2
- package/connectors/connect-mubert/src/utils/config.ts +1 -1
- package/connectors/connect-murf/src/utils/config.ts +1 -1
- package/connectors/connect-mux/src/utils/config.ts +2 -2
- package/connectors/connect-mxtoolbox/src/utils/config.ts +2 -2
- package/connectors/connect-myaskai/src/utils/config.ts +2 -2
- package/connectors/connect-myphoner/src/utils/config.ts +2 -2
- package/connectors/connect-mysql/src/utils/config.ts +2 -2
- package/connectors/connect-nanonetsocr/src/utils/config.ts +2 -2
- package/connectors/connect-nasa/src/utils/config.ts +2 -2
- package/connectors/connect-ncscale/src/utils/config.ts +2 -2
- package/connectors/connect-netlify/src/utils/config.ts +2 -2
- package/connectors/connect-nextcloud/src/utils/config.ts +2 -2
- package/connectors/connect-nightfallai/src/utils/config.ts +2 -2
- package/connectors/connect-ninox/src/utils/config.ts +2 -2
- package/connectors/connect-nmkr/src/utils/config.ts +2 -2
- package/connectors/connect-nocodb/src/utils/config.ts +2 -2
- package/connectors/connect-npm/src/utils/config.ts +2 -2
- package/connectors/connect-nuclia/src/utils/config.ts +2 -2
- package/connectors/connect-nusiiproposals/src/utils/config.ts +2 -2
- package/connectors/connect-nyckel/src/utils/config.ts +2 -2
- package/connectors/connect-nyota/src/utils/config.ts +2 -2
- package/connectors/connect-occasion/src/utils/config.ts +2 -2
- package/connectors/connect-ocrspace/src/utils/config.ts +2 -2
- package/connectors/connect-octoai/src/utils/config.ts +1 -1
- package/connectors/connect-odoo/src/utils/config.ts +2 -2
- package/connectors/connect-offalerts/src/utils/config.ts +2 -2
- package/connectors/connect-okta/src/utils/config.ts +2 -2
- package/connectors/connect-ollama/src/utils/config.ts +2 -2
- package/connectors/connect-omeda/src/utils/config.ts +2 -2
- package/connectors/connect-omniconvert/src/utils/config.ts +2 -2
- package/connectors/connect-omnimind/src/utils/config.ts +2 -2
- package/connectors/connect-on2air/src/utils/config.ts +2 -2
- package/connectors/connect-oneai/src/utils/config.ts +2 -2
- package/connectors/connect-onesimpleapi/src/utils/config.ts +2 -2
- package/connectors/connect-onfleet/src/utils/config.ts +2 -2
- package/connectors/connect-opencti/src/utils/config.ts +2 -2
- package/connectors/connect-openthesaurus/src/utils/config.ts +2 -2
- package/connectors/connect-opnformerlyomise/src/utils/config.ts +2 -2
- package/connectors/connect-oracledatabase/src/utils/config.ts +2 -2
- package/connectors/connect-orbit/src/utils/config.ts +2 -2
- package/connectors/connect-orderdesk/src/utils/config.ts +2 -2
- package/connectors/connect-ortto/src/utils/config.ts +2 -2
- package/connectors/connect-oura/src/utils/config.ts +2 -2
- package/connectors/connect-paddle/src/utils/config.ts +2 -2
- package/connectors/connect-pagerduty/src/utils/config.ts +2 -2
- package/connectors/connect-paperform/src/utils/config.ts +2 -2
- package/connectors/connect-papyrs/src/utils/config.ts +2 -2
- package/connectors/connect-parsehub/src/utils/config.ts +2 -2
- package/connectors/connect-parseprompt/src/utils/config.ts +2 -2
- package/connectors/connect-passcreator/src/utils/config.ts +2 -2
- package/connectors/connect-passslot/src/utils/config.ts +2 -2
- package/connectors/connect-patentsview/src/utils/config.ts +2 -2
- package/connectors/connect-patreon/src/utils/config.ts +2 -2
- package/connectors/connect-paymo/src/utils/config.ts +2 -2
- package/connectors/connect-paypal/src/utils/config.ts +1 -1
- package/connectors/connect-peekalink/src/utils/config.ts +2 -2
- package/connectors/connect-perplexity/src/utils/config.ts +2 -2
- package/connectors/connect-persio/src/utils/config.ts +2 -2
- package/connectors/connect-personalai/src/utils/config.ts +2 -2
- package/connectors/connect-phantombuster/src/utils/config.ts +2 -2
- package/connectors/connect-philipshue/src/utils/config.ts +2 -2
- package/connectors/connect-phrase/src/utils/config.ts +2 -2
- package/connectors/connect-pika/src/utils/config.ts +1 -1
- package/connectors/connect-pinata/src/utils/config.ts +2 -2
- package/connectors/connect-pinboard/src/utils/config.ts +2 -2
- package/connectors/connect-pinterest/src/utils/config.ts +1 -1
- package/connectors/connect-pipedrive/src/utils/config.ts +2 -2
- package/connectors/connect-pipefy/src/utils/config.ts +2 -2
- package/connectors/connect-pirateweather/src/utils/config.ts +2 -2
- package/connectors/connect-pitchly/src/utils/config.ts +2 -2
- package/connectors/connect-pivotaltracker/src/utils/config.ts +2 -2
- package/connectors/connect-plaid/src/utils/config.ts +1 -1
- package/connectors/connect-planviewleankit/src/utils/config.ts +2 -2
- package/connectors/connect-planyoonlinebooking/src/utils/config.ts +2 -2
- package/connectors/connect-platformly/src/utils/config.ts +2 -2
- package/connectors/connect-playht/src/utils/config.ts +1 -1
- package/connectors/connect-plecto/src/utils/config.ts +2 -2
- package/connectors/connect-plivo/src/utils/config.ts +2 -2
- package/connectors/connect-postgres/src/utils/config.ts +2 -2
- package/connectors/connect-posthog/src/utils/config.ts +2 -2
- package/connectors/connect-practitest/src/utils/config.ts +2 -2
- package/connectors/connect-predisai/src/utils/config.ts +2 -2
- package/connectors/connect-prodia/src/utils/config.ts +2 -2
- package/connectors/connect-producthunt/src/utils/config.ts +2 -2
- package/connectors/connect-profitwell/src/utils/config.ts +2 -2
- package/connectors/connect-projectbubbleproprofsproject/src/utils/config.ts +2 -2
- package/connectors/connect-prompthub/src/utils/config.ts +2 -2
- package/connectors/connect-prospeai/src/utils/config.ts +2 -2
- package/connectors/connect-pulsetic/src/utils/config.ts +2 -2
- package/connectors/connect-pushbullet/src/utils/config.ts +2 -2
- package/connectors/connect-pushcut/src/utils/config.ts +2 -2
- package/connectors/connect-pusher/src/utils/config.ts +2 -2
- package/connectors/connect-pushover/src/utils/config.ts +2 -2
- package/connectors/connect-qradar/src/utils/config.ts +2 -2
- package/connectors/connect-qualaroo/src/utils/config.ts +2 -2
- package/connectors/connect-qualys/src/utils/config.ts +2 -2
- package/connectors/connect-quentn/src/utils/config.ts +2 -2
- package/connectors/connect-questdb/src/utils/config.ts +2 -2
- package/connectors/connect-quickbase/src/utils/config.ts +2 -2
- package/connectors/connect-quickbooksonline/src/utils/config.ts +2 -2
- package/connectors/connect-quickchart/src/utils/config.ts +2 -2
- package/connectors/connect-quintadb/src/utils/config.ts +2 -2
- package/connectors/connect-rabbitmq/src/utils/config.ts +2 -2
- package/connectors/connect-radar/src/utils/config.ts +2 -2
- package/connectors/connect-raindrop/src/utils/config.ts +2 -2
- package/connectors/connect-rapid7insightvm/src/utils/config.ts +2 -2
- package/connectors/connect-raventools/src/utils/config.ts +2 -2
- package/connectors/connect-rawgvideogamesdatabase/src/utils/config.ts +2 -2
- package/connectors/connect-rdstationcrm/src/utils/config.ts +2 -2
- package/connectors/connect-readai/src/utils/config.ts +2 -2
- package/connectors/connect-realphonevalidation/src/utils/config.ts +2 -2
- package/connectors/connect-recharge/src/utils/config.ts +2 -2
- package/connectors/connect-recordedfuture/src/utils/config.ts +2 -2
- package/connectors/connect-redash/src/utils/config.ts +2 -2
- package/connectors/connect-redis/src/utils/config.ts +2 -2
- package/connectors/connect-relevanceai/src/utils/config.ts +2 -2
- package/connectors/connect-relinkurlshortener/src/utils/config.ts +2 -2
- package/connectors/connect-relysia/src/utils/config.ts +2 -2
- package/connectors/connect-replicate/src/utils/config.ts +1 -1
- package/connectors/connect-reply/src/utils/config.ts +2 -2
- package/connectors/connect-replyio/src/utils/config.ts +2 -2
- package/connectors/connect-resemble/src/utils/config.ts +1 -1
- package/connectors/connect-retable/src/utils/config.ts +2 -2
- package/connectors/connect-reversecontact/src/utils/config.ts +2 -2
- package/connectors/connect-rewardful/src/utils/config.ts +2 -2
- package/connectors/connect-ritekit/src/utils/config.ts +2 -2
- package/connectors/connect-roboflow/src/utils/config.ts +2 -2
- package/connectors/connect-robolytix/src/utils/config.ts +2 -2
- package/connectors/connect-roboresponseai/src/utils/config.ts +2 -2
- package/connectors/connect-rocketchat/src/utils/config.ts +2 -2
- package/connectors/connect-rollbar/src/utils/config.ts +2 -2
- package/connectors/connect-rootly/src/utils/config.ts +2 -2
- package/connectors/connect-route4me/src/utils/config.ts +2 -2
- package/connectors/connect-rundeck/src/utils/config.ts +2 -2
- package/connectors/connect-runpod/src/utils/config.ts +1 -1
- package/connectors/connect-runway/src/utils/config.ts +1 -1
- package/connectors/connect-s3/src/utils/config.ts +2 -2
- package/connectors/connect-salesforce/src/utils/config.ts +2 -2
- package/connectors/connect-salesmaa/src/utils/config.ts +2 -2
- package/connectors/connect-salesmate/src/utils/config.ts +2 -2
- package/connectors/connect-salesmsg/src/utils/config.ts +2 -2
- package/connectors/connect-salesrocks/src/utils/config.ts +2 -2
- package/connectors/connect-salessimplify/src/utils/config.ts +2 -2
- package/connectors/connect-samsungsmartthings/src/utils/config.ts +2 -2
- package/connectors/connect-scrapeitcloud/src/utils/config.ts +2 -2
- package/connectors/connect-scrapeninja/src/utils/config.ts +2 -2
- package/connectors/connect-screenshotone/src/utils/config.ts +2 -2
- package/connectors/connect-seamlessai/src/utils/config.ts +2 -2
- package/connectors/connect-searchandsave/src/utils/config.ts +2 -2
- package/connectors/connect-searxng/src/utils/config.ts +2 -2
- package/connectors/connect-seatable/src/utils/config.ts +2 -2
- package/connectors/connect-securityscorecard/src/utils/config.ts +2 -2
- package/connectors/connect-segment/src/utils/config.ts +2 -2
- package/connectors/connect-sekoia/src/utils/config.ts +2 -2
- package/connectors/connect-sellix/src/utils/config.ts +2 -2
- package/connectors/connect-semblyai/src/utils/config.ts +2 -2
- package/connectors/connect-sendgrid/src/utils/config.ts +2 -2
- package/connectors/connect-sendy/src/utils/config.ts +2 -2
- package/connectors/connect-servicenow/src/utils/config.ts +2 -2
- package/connectors/connect-sharlyai/src/utils/config.ts +2 -2
- package/connectors/connect-shiphero/src/utils/config.ts +2 -2
- package/connectors/connect-shipstation/src/utils/config.ts +2 -2
- package/connectors/connect-shortio/src/utils/config.ts +2 -2
- package/connectors/connect-shuffler/src/utils/config.ts +2 -2
- package/connectors/connect-sierrainteractive/src/utils/config.ts +2 -2
- package/connectors/connect-sifter/src/utils/config.ts +2 -2
- package/connectors/connect-signaturit/src/utils/config.ts +2 -2
- package/connectors/connect-signl4/src/utils/config.ts +2 -2
- package/connectors/connect-simpleem/src/utils/config.ts +2 -2
- package/connectors/connect-simplehash/src/utils/config.ts +2 -2
- package/connectors/connect-simplekpi/src/utils/config.ts +2 -2
- package/connectors/connect-simplelocalize/src/utils/config.ts +2 -2
- package/connectors/connect-simplero/src/utils/config.ts +2 -2
- package/connectors/connect-simpletexting/src/utils/config.ts +2 -2
- package/connectors/connect-sitecreatorio/src/utils/config.ts +2 -2
- package/connectors/connect-sitespeakai/src/utils/config.ts +2 -2
- package/connectors/connect-slack/src/utils/config.ts +2 -2
- package/connectors/connect-smaily/src/utils/config.ts +2 -2
- package/connectors/connect-smartreach/src/utils/config.ts +2 -2
- package/connectors/connect-smartsuite/src/utils/config.ts +2 -2
- package/connectors/connect-sms77/src/utils/config.ts +2 -2
- package/connectors/connect-smsit/src/utils/config.ts +2 -2
- package/connectors/connect-smsmagic/src/utils/config.ts +2 -2
- package/connectors/connect-snapdocs/src/utils/config.ts +2 -2
- package/connectors/connect-snatchbot/src/utils/config.ts +2 -2
- package/connectors/connect-snipcart/src/utils/config.ts +2 -2
- package/connectors/connect-snowflake/src/utils/config.ts +2 -2
- package/connectors/connect-solvedata/src/utils/config.ts +2 -2
- package/connectors/connect-specter/src/utils/config.ts +2 -2
- package/connectors/connect-speechify/src/utils/config.ts +1 -1
- package/connectors/connect-spike/src/utils/config.ts +2 -2
- package/connectors/connect-splunk/src/utils/config.ts +2 -2
- package/connectors/connect-spondyr/src/utils/config.ts +2 -2
- package/connectors/connect-spontit/src/utils/config.ts +2 -2
- package/connectors/connect-sportsdata/src/utils/config.ts +2 -2
- package/connectors/connect-spotify/src/utils/config.ts +2 -2
- package/connectors/connect-spydra/src/utils/config.ts +2 -2
- package/connectors/connect-square/src/utils/config.ts +2 -2
- package/connectors/connect-sslmatecertspotterapi/src/utils/config.ts +2 -2
- package/connectors/connect-stackby/src/utils/config.ts +2 -2
- package/connectors/connect-stammerai/src/utils/config.ts +2 -2
- package/connectors/connect-starton/src/utils/config.ts +2 -2
- package/connectors/connect-statuscake/src/utils/config.ts +2 -2
- package/connectors/connect-storyblok/src/utils/config.ts +2 -2
- package/connectors/connect-strapi/src/utils/config.ts +2 -2
- package/connectors/connect-strava/src/utils/config.ts +2 -2
- package/connectors/connect-studiobyai21labs/src/utils/config.ts +2 -2
- package/connectors/connect-suitedash/src/utils/config.ts +2 -2
- package/connectors/connect-suno/src/utils/config.ts +1 -1
- package/connectors/connect-supabase/src/utils/config.ts +2 -2
- package/connectors/connect-supernormal/src/utils/config.ts +2 -2
- package/connectors/connect-superpowered/src/utils/config.ts +2 -2
- package/connectors/connect-supportivekoala/src/utils/config.ts +2 -2
- package/connectors/connect-surveysparrow/src/utils/config.ts +2 -2
- package/connectors/connect-survicate/src/utils/config.ts +2 -2
- package/connectors/connect-swagup/src/utils/config.ts +2 -2
- package/connectors/connect-switchboard/src/utils/config.ts +2 -2
- package/connectors/connect-syncly/src/utils/config.ts +2 -2
- package/connectors/connect-syncromsp/src/utils/config.ts +2 -2
- package/connectors/connect-synthesia/src/utils/config.ts +2 -2
- package/connectors/connect-taiga/src/utils/config.ts +2 -2
- package/connectors/connect-talentlms/src/utils/config.ts +2 -2
- package/connectors/connect-talknotes/src/utils/config.ts +2 -2
- package/connectors/connect-tapfiliate/src/utils/config.ts +2 -2
- package/connectors/connect-tdameritrade/src/utils/config.ts +2 -2
- package/connectors/connect-teachable/src/utils/config.ts +2 -2
- package/connectors/connect-teamdeck/src/utils/config.ts +2 -2
- package/connectors/connect-teamgate/src/utils/config.ts +2 -2
- package/connectors/connect-teamup/src/utils/config.ts +2 -2
- package/connectors/connect-teknoir/src/utils/config.ts +2 -2
- package/connectors/connect-testmonitor/src/utils/config.ts +2 -2
- package/connectors/connect-textcortexai/src/utils/config.ts +2 -2
- package/connectors/connect-textgain/src/utils/config.ts +2 -2
- package/connectors/connect-textkit/src/utils/config.ts +2 -2
- package/connectors/connect-textmagic/src/utils/config.ts +2 -2
- package/connectors/connect-thankster/src/utils/config.ts +2 -2
- package/connectors/connect-thecustomerfactor/src/utils/config.ts +2 -2
- package/connectors/connect-thehive/src/utils/config.ts +2 -2
- package/connectors/connect-thehive5/src/utils/config.ts +2 -2
- package/connectors/connect-theleap/src/utils/config.ts +2 -2
- package/connectors/connect-thoughtfulgpt/src/utils/config.ts +2 -2
- package/connectors/connect-thrivecart/src/utils/config.ts +2 -2
- package/connectors/connect-tidbcloud/src/utils/config.ts +2 -2
- package/connectors/connect-tierion/src/utils/config.ts +2 -2
- package/connectors/connect-tilda/src/utils/config.ts +2 -2
- package/connectors/connect-timescaledb/src/utils/config.ts +2 -2
- package/connectors/connect-timetonic/src/utils/config.ts +2 -2
- package/connectors/connect-tinyurl/src/utils/config.ts +2 -2
- package/connectors/connect-tisanelabs/src/utils/config.ts +2 -2
- package/connectors/connect-todoist/src/utils/config.ts +1 -1
- package/connectors/connect-together/src/utils/config.ts +1 -1
- package/connectors/connect-tokenmetrics/src/utils/config.ts +2 -2
- package/connectors/connect-toket/src/utils/config.ts +2 -2
- package/connectors/connect-totango/src/utils/config.ts +2 -2
- package/connectors/connect-trackvia/src/utils/config.ts +2 -2
- package/connectors/connect-transifex/src/utils/config.ts +2 -2
- package/connectors/connect-travisci/src/utils/config.ts +2 -2
- package/connectors/connect-trellixepo/src/utils/config.ts +2 -2
- package/connectors/connect-trello/src/utils/config.ts +2 -2
- package/connectors/connect-trengo/src/utils/config.ts +2 -2
- package/connectors/connect-trevorio/src/utils/config.ts +2 -2
- package/connectors/connect-turbohire/src/utils/config.ts +2 -2
- package/connectors/connect-tuskr/src/utils/config.ts +2 -2
- package/connectors/connect-tuulio/src/utils/config.ts +2 -2
- package/connectors/connect-twake/src/utils/config.ts +2 -2
- package/connectors/connect-twist/src/utils/config.ts +2 -2
- package/connectors/connect-udio/src/utils/config.ts +1 -1
- package/connectors/connect-unbounce/src/utils/config.ts +2 -2
- package/connectors/connect-unisender/src/utils/config.ts +2 -2
- package/connectors/connect-unleashedsoftware/src/utils/config.ts +2 -2
- package/connectors/connect-upkeep/src/utils/config.ts +2 -2
- package/connectors/connect-uplead/src/utils/config.ts +2 -2
- package/connectors/connect-uproc/src/utils/config.ts +2 -2
- package/connectors/connect-uptimerobot/src/utils/config.ts +2 -2
- package/connectors/connect-uptimetoolbox/src/utils/config.ts +2 -2
- package/connectors/connect-urlscanio/src/utils/config.ts +2 -2
- package/connectors/connect-uservoice/src/utils/config.ts +2 -2
- package/connectors/connect-vercel/src/utils/config.ts +2 -2
- package/connectors/connect-verifalia/src/utils/config.ts +2 -2
- package/connectors/connect-vero/src/utils/config.ts +2 -2
- package/connectors/connect-vimeo/src/utils/config.ts +2 -2
- package/connectors/connect-virustotal/src/utils/config.ts +2 -2
- package/connectors/connect-vivifyscrum/src/utils/config.ts +2 -2
- package/connectors/connect-voicit/src/utils/config.ts +2 -2
- package/connectors/connect-vonage/src/utils/config.ts +2 -2
- package/connectors/connect-vowel/src/utils/config.ts +2 -2
- package/connectors/connect-watchsignals/src/utils/config.ts +2 -2
- package/connectors/connect-wavelineextract/src/utils/config.ts +2 -2
- package/connectors/connect-webexbycisco/src/utils/config.ts +2 -2
- package/connectors/connect-webinarjam/src/utils/config.ts +2 -2
- package/connectors/connect-webscraperio/src/utils/config.ts +2 -2
- package/connectors/connect-wekan/src/utils/config.ts +2 -2
- package/connectors/connect-whal3s/src/utils/config.ts +2 -2
- package/connectors/connect-whatconverts/src/utils/config.ts +2 -2
- package/connectors/connect-whatsapp/src/utils/config.ts +1 -1
- package/connectors/connect-wikipedia/src/utils/config.ts +2 -2
- package/connectors/connect-wipo/src/utils/config.ts +2 -2
- package/connectors/connect-wise/src/utils/config.ts +2 -2
- package/connectors/connect-wizychat/src/utils/config.ts +2 -2
- package/connectors/connect-wolframoralpha/src/utils/config.ts +2 -2
- package/connectors/connect-wonderchat/src/utils/config.ts +2 -2
- package/connectors/connect-wondercraft/src/utils/config.ts +2 -2
- package/connectors/connect-woocommerce/src/utils/config.ts +2 -2
- package/connectors/connect-woodpeckerco/src/utils/config.ts +2 -2
- package/connectors/connect-wordpress/src/utils/config.ts +2 -2
- package/connectors/connect-workast/src/utils/config.ts +2 -2
- package/connectors/connect-workboard/src/utils/config.ts +2 -2
- package/connectors/connect-woxo/src/utils/config.ts +2 -2
- package/connectors/connect-writesonic/src/utils/config.ts +2 -2
- package/connectors/connect-wubookratechecker/src/utils/config.ts +2 -2
- package/connectors/connect-xata/src/utils/config.ts +2 -2
- package/connectors/connect-xero/src/utils/config.ts +2 -2
- package/connectors/connect-xtractly/src/utils/config.ts +2 -2
- package/connectors/connect-ybug/src/utils/config.ts +2 -2
- package/connectors/connect-ycode/src/utils/config.ts +2 -2
- package/connectors/connect-yodiz/src/utils/config.ts +2 -2
- package/connectors/connect-yourls/src/utils/config.ts +2 -2
- package/connectors/connect-zabbix/src/utils/config.ts +2 -2
- package/connectors/connect-zammad/src/utils/config.ts +2 -2
- package/connectors/connect-zendesk/src/utils/config.ts +4 -4
- package/connectors/connect-zenrows/src/utils/config.ts +2 -2
- package/connectors/connect-zohobooks/src/utils/config.ts +2 -2
- package/connectors/connect-zohocrm/src/utils/config.ts +2 -2
- package/connectors/connect-zohodesk/src/utils/config.ts +2 -2
- package/connectors/connect-zohoworkdrive/src/utils/config.ts +2 -2
- package/connectors/connect-zonkafeedback/src/utils/config.ts +2 -2
- package/connectors/connect-zscalerzia/src/utils/config.ts +2 -2
- package/connectors/connect-zulip/src/utils/config.ts +2 -2
- package/package.json +1 -1
- package/connectors/connect-gmail/src/api/attachments.ts +0 -143
- package/connectors/connect-gmail/src/api/bulk.ts +0 -661
- package/connectors/connect-gmail/src/api/client.ts +0 -131
- package/connectors/connect-gmail/src/api/drafts.ts +0 -198
- package/connectors/connect-gmail/src/api/export.ts +0 -312
- package/connectors/connect-gmail/src/api/filters.ts +0 -127
- package/connectors/connect-gmail/src/api/index.ts +0 -63
- package/connectors/connect-gmail/src/api/labels.ts +0 -123
- package/connectors/connect-gmail/src/api/messages.ts +0 -527
- package/connectors/connect-gmail/src/api/profile.ts +0 -72
- package/connectors/connect-gmail/src/api/threads.ts +0 -85
- package/connectors/connect-gmail/src/cli/index.ts +0 -2328
- package/connectors/connect-gmail/src/index.ts +0 -30
- package/connectors/connect-gmail/src/types/index.ts +0 -202
- package/connectors/connect-gmail/src/utils/auth.ts +0 -247
- package/connectors/connect-gmail/src/utils/config.ts +0 -466
- package/connectors/connect-gmail/src/utils/contacts.ts +0 -147
- package/connectors/connect-gmail/src/utils/markdown.ts +0 -119
- package/connectors/connect-gmail/src/utils/output.ts +0 -119
- package/connectors/connect-gmail/src/utils/settings.ts +0 -87
- package/connectors/connect-gmail/tsconfig.json +0 -16
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import type { OutputFormat } from '../types';
|
|
2
|
-
import { GmailApiError } from '../types';
|
|
3
|
-
import { getValidAccessToken } from '../utils/auth';
|
|
4
|
-
|
|
5
|
-
const GMAIL_API_BASE = 'https://gmail.googleapis.com/gmail/v1';
|
|
6
|
-
|
|
7
|
-
export interface RequestOptions {
|
|
8
|
-
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
9
|
-
params?: Record<string, string | number | boolean | undefined>;
|
|
10
|
-
body?: Record<string, unknown> | unknown[] | string;
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
format?: OutputFormat;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export class GmailClient {
|
|
16
|
-
private accessToken?: string;
|
|
17
|
-
private userId: string = 'me'; // Default to authenticated user
|
|
18
|
-
|
|
19
|
-
constructor() {}
|
|
20
|
-
|
|
21
|
-
setUserId(userId: string): void {
|
|
22
|
-
this.userId = userId;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getUserId(): string {
|
|
26
|
-
return this.userId;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
private buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {
|
|
30
|
-
const url = new URL(`${GMAIL_API_BASE}${path}`);
|
|
31
|
-
|
|
32
|
-
if (params) {
|
|
33
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
34
|
-
if (value !== undefined && value !== null && value !== '') {
|
|
35
|
-
url.searchParams.append(key, String(value));
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return url.toString();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async request<T>(path: string, options: RequestOptions = {}): Promise<T> {
|
|
44
|
-
const { method = 'GET', params, body, headers = {} } = options;
|
|
45
|
-
|
|
46
|
-
// Get fresh access token (handles refresh automatically)
|
|
47
|
-
const accessToken = await getValidAccessToken();
|
|
48
|
-
|
|
49
|
-
const url = this.buildUrl(path, params);
|
|
50
|
-
|
|
51
|
-
const requestHeaders: Record<string, string> = {
|
|
52
|
-
'Authorization': `Bearer ${accessToken}`,
|
|
53
|
-
'Accept': 'application/json',
|
|
54
|
-
...headers,
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
if (body && ['POST', 'PUT', 'PATCH'].includes(method)) {
|
|
58
|
-
if (typeof body === 'string') {
|
|
59
|
-
requestHeaders['Content-Type'] = 'message/rfc822';
|
|
60
|
-
} else {
|
|
61
|
-
requestHeaders['Content-Type'] = 'application/json';
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const fetchOptions: RequestInit = {
|
|
66
|
-
method,
|
|
67
|
-
headers: requestHeaders,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
if (body && ['POST', 'PUT', 'PATCH'].includes(method)) {
|
|
71
|
-
fetchOptions.body = typeof body === 'string' ? body : JSON.stringify(body);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const response = await fetch(url, fetchOptions);
|
|
75
|
-
|
|
76
|
-
// Handle 204 No Content
|
|
77
|
-
if (response.status === 204) {
|
|
78
|
-
return {} as T;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Parse response
|
|
82
|
-
let data: unknown;
|
|
83
|
-
const contentType = response.headers.get('content-type') || '';
|
|
84
|
-
|
|
85
|
-
if (contentType.includes('application/json')) {
|
|
86
|
-
const text = await response.text();
|
|
87
|
-
if (text) {
|
|
88
|
-
try {
|
|
89
|
-
data = JSON.parse(text);
|
|
90
|
-
} catch {
|
|
91
|
-
data = text;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
} else {
|
|
95
|
-
data = await response.text();
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// Handle errors
|
|
99
|
-
if (!response.ok) {
|
|
100
|
-
const errorData = data as { error?: { message?: string; code?: number; errors?: unknown[] } };
|
|
101
|
-
const errorMessage = errorData?.error?.message || String(data || response.statusText);
|
|
102
|
-
throw new GmailApiError(
|
|
103
|
-
errorMessage,
|
|
104
|
-
response.status,
|
|
105
|
-
errorData?.error?.errors as GmailApiError['errors']
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return data as T;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
113
|
-
return this.request<T>(path, { method: 'GET', params });
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
async post<T>(path: string, body?: Record<string, unknown> | unknown[] | string, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
117
|
-
return this.request<T>(path, { method: 'POST', body, params });
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
async put<T>(path: string, body?: Record<string, unknown>, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
121
|
-
return this.request<T>(path, { method: 'PUT', body, params });
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
async patch<T>(path: string, body?: Record<string, unknown>, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
125
|
-
return this.request<T>(path, { method: 'PATCH', body, params });
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
async delete<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
129
|
-
return this.request<T>(path, { method: 'DELETE', params });
|
|
130
|
-
}
|
|
131
|
-
}
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import type { GmailClient } from './client';
|
|
2
|
-
import type { GmailMessage, GmailDraft, SendMessageOptions } from '../types';
|
|
3
|
-
import { getFormattedSender, getUserEmail } from '../utils/config';
|
|
4
|
-
import { formatEmailWithName } from '../utils/contacts';
|
|
5
|
-
import { markdownToHtml, wrapInEmailTemplate, looksLikeMarkdown } from '../utils/markdown';
|
|
6
|
-
import { loadSettings, shouldAppendSignature, getSignature } from '../utils/settings';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Encode a string for email headers using RFC 2047 MIME encoded-word syntax
|
|
10
|
-
*/
|
|
11
|
-
function encodeHeaderValue(value: string): string {
|
|
12
|
-
if (!/[^\x00-\x7F]/.test(value)) {
|
|
13
|
-
return value;
|
|
14
|
-
}
|
|
15
|
-
const encoded = Buffer.from(value, 'utf-8').toString('base64');
|
|
16
|
-
return `=?UTF-8?B?${encoded}?=`;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Strip HTML tags to create plain text version
|
|
21
|
-
*/
|
|
22
|
-
function htmlToPlainText(html: string): string {
|
|
23
|
-
return html
|
|
24
|
-
.replace(/<br\s*\/?>/gi, '\n')
|
|
25
|
-
.replace(/<\/p>/gi, '\n\n')
|
|
26
|
-
.replace(/<\/div>/gi, '\n')
|
|
27
|
-
.replace(/<[^>]+>/g, '')
|
|
28
|
-
.replace(/ /g, ' ')
|
|
29
|
-
.replace(/&/g, '&')
|
|
30
|
-
.replace(/</g, '<')
|
|
31
|
-
.replace(/>/g, '>')
|
|
32
|
-
.replace(/"/g, '"')
|
|
33
|
-
.replace(/\n{3,}/g, '\n\n')
|
|
34
|
-
.trim();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export class DraftsApi {
|
|
38
|
-
private client: GmailClient;
|
|
39
|
-
|
|
40
|
-
constructor(client: GmailClient) {
|
|
41
|
-
this.client = client;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* List drafts in the user's mailbox
|
|
46
|
-
*/
|
|
47
|
-
async list(maxResults: number = 10): Promise<{ drafts: GmailDraft[] }> {
|
|
48
|
-
return this.client.get<{ drafts: GmailDraft[] }>(
|
|
49
|
-
`/users/${this.client.getUserId()}/drafts`,
|
|
50
|
-
{ maxResults }
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Get a specific draft by ID
|
|
56
|
-
*/
|
|
57
|
-
async get(draftId: string): Promise<GmailDraft> {
|
|
58
|
-
return this.client.get<GmailDraft>(
|
|
59
|
-
`/users/${this.client.getUserId()}/drafts/${draftId}`
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Create a new draft
|
|
65
|
-
*/
|
|
66
|
-
async create(options: SendMessageOptions): Promise<GmailDraft> {
|
|
67
|
-
const message = this.buildRawMessage(options);
|
|
68
|
-
const encodedMessage = Buffer.from(message).toString('base64url');
|
|
69
|
-
|
|
70
|
-
return this.client.post<GmailDraft>(
|
|
71
|
-
`/users/${this.client.getUserId()}/drafts`,
|
|
72
|
-
{
|
|
73
|
-
message: {
|
|
74
|
-
raw: encodedMessage,
|
|
75
|
-
},
|
|
76
|
-
}
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Update an existing draft
|
|
82
|
-
*/
|
|
83
|
-
async update(draftId: string, options: SendMessageOptions): Promise<GmailDraft> {
|
|
84
|
-
const message = this.buildRawMessage(options);
|
|
85
|
-
const encodedMessage = Buffer.from(message).toString('base64url');
|
|
86
|
-
|
|
87
|
-
return this.client.put<GmailDraft>(
|
|
88
|
-
`/users/${this.client.getUserId()}/drafts/${draftId}`,
|
|
89
|
-
{
|
|
90
|
-
message: {
|
|
91
|
-
raw: encodedMessage,
|
|
92
|
-
},
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Delete a draft
|
|
99
|
-
*/
|
|
100
|
-
async delete(draftId: string): Promise<void> {
|
|
101
|
-
await this.client.delete(
|
|
102
|
-
`/users/${this.client.getUserId()}/drafts/${draftId}`
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Send a draft
|
|
108
|
-
*/
|
|
109
|
-
async send(draftId: string): Promise<GmailMessage> {
|
|
110
|
-
return this.client.post<GmailMessage>(
|
|
111
|
-
`/users/${this.client.getUserId()}/drafts/send`,
|
|
112
|
-
{ id: draftId }
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Build RFC 2822 formatted message with signature, markdown support
|
|
118
|
-
*/
|
|
119
|
-
private buildRawMessage(options: SendMessageOptions): string {
|
|
120
|
-
const settings = loadSettings();
|
|
121
|
-
|
|
122
|
-
// Format addresses with contact names
|
|
123
|
-
const formatAddresses = (addresses: string | string[]): string => {
|
|
124
|
-
const addrs = Array.isArray(addresses) ? addresses : [addresses];
|
|
125
|
-
return addrs.map(addr => {
|
|
126
|
-
if (addr.includes('<') && addr.includes('>')) {
|
|
127
|
-
return addr;
|
|
128
|
-
}
|
|
129
|
-
return formatEmailWithName(addr);
|
|
130
|
-
}).join(', ');
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const to = formatAddresses(options.to);
|
|
134
|
-
const cc = options.cc ? formatAddresses(options.cc) : '';
|
|
135
|
-
const bcc = options.bcc ? formatAddresses(options.bcc) : '';
|
|
136
|
-
|
|
137
|
-
// Process body: markdown conversion and signature
|
|
138
|
-
let body = options.body;
|
|
139
|
-
let isHtml = options.isHtml || false;
|
|
140
|
-
|
|
141
|
-
// Auto-detect and convert markdown if enabled
|
|
142
|
-
if (settings.markdownEnabled && !isHtml && looksLikeMarkdown(body)) {
|
|
143
|
-
body = markdownToHtml(body);
|
|
144
|
-
isHtml = true;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Append signature (drafts are new emails, not replies)
|
|
148
|
-
if (shouldAppendSignature(false)) {
|
|
149
|
-
const signature = getSignature();
|
|
150
|
-
if (signature) {
|
|
151
|
-
// Gmail signatures are HTML, so convert body to HTML if needed
|
|
152
|
-
if (!isHtml) {
|
|
153
|
-
// Convert plain text to simple HTML
|
|
154
|
-
body = body.replace(/\n/g, '<br>');
|
|
155
|
-
isHtml = true;
|
|
156
|
-
}
|
|
157
|
-
body += `<br><br>${signature}`;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Get formatted sender with display name
|
|
162
|
-
let from: string;
|
|
163
|
-
try {
|
|
164
|
-
from = getFormattedSender();
|
|
165
|
-
} catch {
|
|
166
|
-
from = getUserEmail() || '';
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
let message = '';
|
|
170
|
-
message += `From: ${from}\r\n`;
|
|
171
|
-
message += `To: ${to}\r\n`;
|
|
172
|
-
if (cc) message += `Cc: ${cc}\r\n`;
|
|
173
|
-
if (bcc) message += `Bcc: ${bcc}\r\n`;
|
|
174
|
-
message += `Subject: ${encodeHeaderValue(options.subject)}\r\n`;
|
|
175
|
-
message += `MIME-Version: 1.0\r\n`;
|
|
176
|
-
|
|
177
|
-
if (isHtml) {
|
|
178
|
-
// Send multipart/alternative with both plain text and HTML
|
|
179
|
-
const boundary = `boundary_${Date.now()}`;
|
|
180
|
-
const htmlBody = wrapInEmailTemplate(body);
|
|
181
|
-
const plainBody = htmlToPlainText(body);
|
|
182
|
-
|
|
183
|
-
message += `Content-Type: multipart/alternative; boundary="${boundary}"\r\n\r\n`;
|
|
184
|
-
message += `--${boundary}\r\n`;
|
|
185
|
-
message += `Content-Type: text/plain; charset="UTF-8"\r\n\r\n`;
|
|
186
|
-
message += `${plainBody}\r\n`;
|
|
187
|
-
message += `--${boundary}\r\n`;
|
|
188
|
-
message += `Content-Type: text/html; charset="UTF-8"\r\n\r\n`;
|
|
189
|
-
message += `${htmlBody}\r\n`;
|
|
190
|
-
message += `--${boundary}--`;
|
|
191
|
-
} else {
|
|
192
|
-
message += `Content-Type: text/plain; charset="UTF-8"\r\n\r\n`;
|
|
193
|
-
message += body;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return message;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { writeFileSync, mkdirSync, existsSync, appendFileSync } from 'fs';
|
|
2
|
-
import { join, dirname } from 'path';
|
|
3
|
-
import type { GmailClient } from './client';
|
|
4
|
-
import type { GmailMessage, MessageListResponse } from '../types';
|
|
5
|
-
import { ensureExportsDir } from '../utils/config';
|
|
6
|
-
|
|
7
|
-
export interface ExportOptions {
|
|
8
|
-
query?: string;
|
|
9
|
-
labelIds?: string[];
|
|
10
|
-
maxResults?: number;
|
|
11
|
-
outputDir?: string;
|
|
12
|
-
filename?: string;
|
|
13
|
-
format?: 'eml' | 'mbox';
|
|
14
|
-
includeAttachments?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface ExportResult {
|
|
18
|
-
messageCount: number;
|
|
19
|
-
filePath: string;
|
|
20
|
-
format: string;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export class ExportApi {
|
|
24
|
-
constructor(private readonly client: GmailClient) {}
|
|
25
|
-
|
|
26
|
-
// ============================================
|
|
27
|
-
// Main Export Methods
|
|
28
|
-
// ============================================
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Export messages to EML or MBOX format
|
|
32
|
-
*/
|
|
33
|
-
async exportMessages(options: ExportOptions = {}): Promise<ExportResult> {
|
|
34
|
-
const format = options.format || 'eml';
|
|
35
|
-
const messages = await this.getMessages(options);
|
|
36
|
-
|
|
37
|
-
if (messages.length === 0) {
|
|
38
|
-
const outputDir = options.outputDir || ensureExportsDir();
|
|
39
|
-
const filename = options.filename || `emails_${new Date().toISOString().split('T')[0]}.${format === 'mbox' ? 'mbox' : 'eml'}`;
|
|
40
|
-
const filePath = join(outputDir, filename);
|
|
41
|
-
writeFileSync(filePath, '', 'utf-8');
|
|
42
|
-
return {
|
|
43
|
-
messageCount: 0,
|
|
44
|
-
filePath,
|
|
45
|
-
format,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (format === 'mbox') {
|
|
50
|
-
return this.exportToMbox(messages, options);
|
|
51
|
-
} else {
|
|
52
|
-
return this.exportToEml(messages, options);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Export messages from a specific label
|
|
58
|
-
*/
|
|
59
|
-
async exportLabel(labelId: string, options: Omit<ExportOptions, 'labelIds'> = {}): Promise<ExportResult> {
|
|
60
|
-
return this.exportMessages({
|
|
61
|
-
...options,
|
|
62
|
-
labelIds: [labelId],
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Export inbox messages
|
|
68
|
-
*/
|
|
69
|
-
async exportInbox(options: Omit<ExportOptions, 'labelIds'> = {}): Promise<ExportResult> {
|
|
70
|
-
return this.exportLabel('INBOX', options);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Export sent messages
|
|
75
|
-
*/
|
|
76
|
-
async exportSent(options: Omit<ExportOptions, 'labelIds'> = {}): Promise<ExportResult> {
|
|
77
|
-
return this.exportLabel('SENT', options);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Export starred messages
|
|
82
|
-
*/
|
|
83
|
-
async exportStarred(options: Omit<ExportOptions, 'labelIds'> = {}): Promise<ExportResult> {
|
|
84
|
-
return this.exportLabel('STARRED', options);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Export a single message
|
|
89
|
-
*/
|
|
90
|
-
async exportMessage(messageId: string, options: { outputDir?: string; filename?: string } = {}): Promise<ExportResult> {
|
|
91
|
-
const message = await this.client.get<GmailMessage>(
|
|
92
|
-
`/users/${this.client.getUserId()}/messages/${messageId}`,
|
|
93
|
-
{ format: 'raw' }
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
const outputDir = options.outputDir || ensureExportsDir();
|
|
97
|
-
const filename = options.filename || `message_${messageId}.eml`;
|
|
98
|
-
const filePath = join(outputDir, filename);
|
|
99
|
-
|
|
100
|
-
if (!existsSync(dirname(filePath))) {
|
|
101
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Decode the raw message from base64url
|
|
105
|
-
const rawContent = this.decodeBase64Url(message.raw || '');
|
|
106
|
-
writeFileSync(filePath, rawContent, 'utf-8');
|
|
107
|
-
|
|
108
|
-
return {
|
|
109
|
-
messageCount: 1,
|
|
110
|
-
filePath,
|
|
111
|
-
format: 'eml',
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Export a thread (all messages in a conversation)
|
|
117
|
-
*/
|
|
118
|
-
async exportThread(threadId: string, options: Omit<ExportOptions, 'query' | 'labelIds'> = {}): Promise<ExportResult> {
|
|
119
|
-
const thread = await this.client.get<{ messages: Array<{ id: string }> }>(
|
|
120
|
-
`/users/${this.client.getUserId()}/threads/${threadId}`,
|
|
121
|
-
{ format: 'minimal' }
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
const messageIds = thread.messages.map(m => m.id);
|
|
125
|
-
const messages: GmailMessage[] = [];
|
|
126
|
-
|
|
127
|
-
for (const id of messageIds) {
|
|
128
|
-
const message = await this.client.get<GmailMessage>(
|
|
129
|
-
`/users/${this.client.getUserId()}/messages/${id}`,
|
|
130
|
-
{ format: 'raw' }
|
|
131
|
-
);
|
|
132
|
-
messages.push(message);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const format = options.format || 'mbox';
|
|
136
|
-
if (format === 'mbox') {
|
|
137
|
-
return this.exportToMbox(messages, {
|
|
138
|
-
...options,
|
|
139
|
-
filename: options.filename || `thread_${threadId}.mbox`,
|
|
140
|
-
});
|
|
141
|
-
} else {
|
|
142
|
-
return this.exportToEml(messages, {
|
|
143
|
-
...options,
|
|
144
|
-
filename: options.filename || `thread_${threadId}`,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// ============================================
|
|
150
|
-
// Export Formats
|
|
151
|
-
// ============================================
|
|
152
|
-
|
|
153
|
-
private async exportToEml(messages: GmailMessage[], options: ExportOptions): Promise<ExportResult> {
|
|
154
|
-
const outputDir = options.outputDir || ensureExportsDir();
|
|
155
|
-
const timestamp = new Date().toISOString().split('T')[0];
|
|
156
|
-
const exportDir = join(outputDir, options.filename || `emails_${timestamp}`);
|
|
157
|
-
|
|
158
|
-
if (!existsSync(exportDir)) {
|
|
159
|
-
mkdirSync(exportDir, { recursive: true });
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
for (let i = 0; i < messages.length; i++) {
|
|
163
|
-
const message = messages[i];
|
|
164
|
-
const rawContent = this.decodeBase64Url(message.raw || '');
|
|
165
|
-
|
|
166
|
-
// Get subject for filename
|
|
167
|
-
const subjectMatch = rawContent.match(/^Subject:\s*(.+)$/m);
|
|
168
|
-
let subject = subjectMatch ? subjectMatch[1].trim() : `message_${i + 1}`;
|
|
169
|
-
subject = this.sanitizeFilename(subject).slice(0, 50);
|
|
170
|
-
|
|
171
|
-
const filename = `${i + 1}_${message.id}_${subject}.eml`;
|
|
172
|
-
const filePath = join(exportDir, filename);
|
|
173
|
-
|
|
174
|
-
writeFileSync(filePath, rawContent, 'utf-8');
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return {
|
|
178
|
-
messageCount: messages.length,
|
|
179
|
-
filePath: exportDir,
|
|
180
|
-
format: 'eml',
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
private async exportToMbox(messages: GmailMessage[], options: ExportOptions): Promise<ExportResult> {
|
|
185
|
-
const outputDir = options.outputDir || ensureExportsDir();
|
|
186
|
-
const filename = options.filename || `emails_${new Date().toISOString().split('T')[0]}.mbox`;
|
|
187
|
-
const filePath = join(outputDir, filename);
|
|
188
|
-
|
|
189
|
-
if (!existsSync(dirname(filePath))) {
|
|
190
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Clear or create the file
|
|
194
|
-
writeFileSync(filePath, '', 'utf-8');
|
|
195
|
-
|
|
196
|
-
for (const message of messages) {
|
|
197
|
-
const rawContent = this.decodeBase64Url(message.raw || '');
|
|
198
|
-
|
|
199
|
-
// Get the From header for the mbox "From " line
|
|
200
|
-
const fromMatch = rawContent.match(/^From:\s*(.+)$/m);
|
|
201
|
-
let fromAddr = 'unknown@unknown.com';
|
|
202
|
-
if (fromMatch) {
|
|
203
|
-
const emailMatch = fromMatch[1].match(/<([^>]+)>/) || fromMatch[1].match(/([^\s<>]+@[^\s<>]+)/);
|
|
204
|
-
if (emailMatch) {
|
|
205
|
-
fromAddr = emailMatch[1];
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Get date for the mbox "From " line
|
|
210
|
-
const dateMatch = rawContent.match(/^Date:\s*(.+)$/m);
|
|
211
|
-
let mboxDate = new Date().toUTCString();
|
|
212
|
-
if (dateMatch) {
|
|
213
|
-
try {
|
|
214
|
-
const parsed = new Date(dateMatch[1]);
|
|
215
|
-
if (!isNaN(parsed.getTime())) {
|
|
216
|
-
// Convert to mbox format: "Mon Jan 01 12:00:00 2024"
|
|
217
|
-
mboxDate = parsed.toUTCString().replace(/,/g, '').replace(/ GMT$/, '');
|
|
218
|
-
}
|
|
219
|
-
} catch {
|
|
220
|
-
// Keep default date
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// Write mbox format: "From <email> <date>\n<raw message>\n"
|
|
225
|
-
const mboxLine = `From ${fromAddr} ${mboxDate}\n`;
|
|
226
|
-
appendFileSync(filePath, mboxLine, 'utf-8');
|
|
227
|
-
|
|
228
|
-
// Escape any "From " lines at the start of message body lines
|
|
229
|
-
const escapedContent = rawContent.replace(/^From /gm, '>From ');
|
|
230
|
-
appendFileSync(filePath, escapedContent, 'utf-8');
|
|
231
|
-
|
|
232
|
-
// Ensure message ends with newline
|
|
233
|
-
if (!rawContent.endsWith('\n')) {
|
|
234
|
-
appendFileSync(filePath, '\n', 'utf-8');
|
|
235
|
-
}
|
|
236
|
-
appendFileSync(filePath, '\n', 'utf-8');
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
return {
|
|
240
|
-
messageCount: messages.length,
|
|
241
|
-
filePath,
|
|
242
|
-
format: 'mbox',
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// ============================================
|
|
247
|
-
// Helper Methods
|
|
248
|
-
// ============================================
|
|
249
|
-
|
|
250
|
-
private async getMessages(options: ExportOptions): Promise<GmailMessage[]> {
|
|
251
|
-
const messages: GmailMessage[] = [];
|
|
252
|
-
let pageToken: string | undefined;
|
|
253
|
-
const maxResults = options.maxResults || 1000;
|
|
254
|
-
let fetched = 0;
|
|
255
|
-
|
|
256
|
-
do {
|
|
257
|
-
const params: Record<string, string | number | boolean | undefined> = {
|
|
258
|
-
maxResults: Math.min(100, maxResults - fetched),
|
|
259
|
-
pageToken,
|
|
260
|
-
q: options.query,
|
|
261
|
-
includeSpamTrash: false,
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
if (options.labelIds && options.labelIds.length > 0) {
|
|
265
|
-
params.labelIds = options.labelIds.join(',');
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
const response = await this.client.get<MessageListResponse>(
|
|
269
|
-
`/users/${this.client.getUserId()}/messages`,
|
|
270
|
-
params
|
|
271
|
-
);
|
|
272
|
-
|
|
273
|
-
if (!response.messages || response.messages.length === 0) {
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// Fetch full raw content for each message
|
|
278
|
-
for (const msg of response.messages) {
|
|
279
|
-
if (fetched >= maxResults) break;
|
|
280
|
-
|
|
281
|
-
const fullMessage = await this.client.get<GmailMessage>(
|
|
282
|
-
`/users/${this.client.getUserId()}/messages/${msg.id}`,
|
|
283
|
-
{ format: 'raw' }
|
|
284
|
-
);
|
|
285
|
-
messages.push(fullMessage);
|
|
286
|
-
fetched++;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
pageToken = response.nextPageToken;
|
|
290
|
-
} while (pageToken && fetched < maxResults);
|
|
291
|
-
|
|
292
|
-
return messages;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
private decodeBase64Url(encoded: string): string {
|
|
296
|
-
// Convert base64url to base64
|
|
297
|
-
let base64 = encoded.replace(/-/g, '+').replace(/_/g, '/');
|
|
298
|
-
// Add padding if needed
|
|
299
|
-
while (base64.length % 4) {
|
|
300
|
-
base64 += '=';
|
|
301
|
-
}
|
|
302
|
-
return Buffer.from(base64, 'base64').toString('utf-8');
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
private sanitizeFilename(name: string): string {
|
|
306
|
-
return name
|
|
307
|
-
.replace(/[<>:"/\\|?*\x00-\x1F]/g, '')
|
|
308
|
-
.replace(/\s+/g, '_')
|
|
309
|
-
.replace(/^\.+/, '')
|
|
310
|
-
.slice(0, 200);
|
|
311
|
-
}
|
|
312
|
-
}
|