@hasna/connectors 1.4.0 → 1.4.2
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 +1561 -1277
- package/bin/mcp.js +534 -213
- package/bin/serve.js +1218 -258
- package/connectors/adobe/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/amadeus/src/api/client.ts +6 -6
- package/connectors/amadeus/src/cli/index.ts +6 -6
- package/connectors/amadeus/src/utils/output.ts +5 -5
- package/connectors/amazon/package.json +1 -1
- package/connectors/amilia/package.json +1 -1
- package/connectors/amqpsender/package.json +1 -1
- package/connectors/announcekit/package.json +1 -1
- package/connectors/anthropic/.env.example +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/assemblyai/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/awscognito/package.json +1 -1
- package/connectors/bamboohr/package.json +1 -1
- package/connectors/bannerbear/package.json +1 -1
- package/connectors/baseten/package.json +1 -1
- package/connectors/box/package.json +1 -1
- package/connectors/brevo/package.json +1 -1
- package/connectors/calendly/package.json +1 -1
- package/connectors/cerebras/package.json +1 -1
- package/connectors/chargebee/package.json +1 -1
- package/connectors/clearbit/package.json +1 -1
- package/connectors/cloudflare-workers/package.json +1 -1
- package/connectors/coda/package.json +1 -1
- package/connectors/coingecko/package.json +1 -1
- package/connectors/convertkit/package.json +1 -1
- package/connectors/customerio/package.json +1 -1
- package/connectors/databricks/package.json +1 -1
- package/connectors/datadog/package.json +1 -1
- package/connectors/datasoap/README.md +2 -2
- package/connectors/datasoap/package.json +1 -1
- package/connectors/datumbox/README.md +2 -2
- package/connectors/datumbox/package.json +1 -1
- package/connectors/dayschedule/README.md +2 -2
- package/connectors/dayschedule/package.json +1 -1
- package/connectors/deepgram/package.json +1 -1
- package/connectors/deepinfra/README.md +2 -2
- package/connectors/deepinfra/package.json +1 -1
- package/connectors/deepl/README.md +2 -2
- package/connectors/deepl/package.json +1 -1
- package/connectors/deepseek/package.json +1 -1
- package/connectors/demio/README.md +2 -2
- package/connectors/demio/package.json +1 -1
- package/connectors/descript/README.md +2 -2
- package/connectors/descript/package.json +1 -1
- package/connectors/detrack/README.md +2 -2
- package/connectors/detrack/package.json +1 -1
- package/connectors/devcycle/README.md +2 -2
- package/connectors/devcycle/package.json +1 -1
- package/connectors/dhl/README.md +2 -2
- package/connectors/dhl/package.json +1 -1
- package/connectors/docusign/package.json +1 -1
- package/connectors/dropbox/package.json +1 -1
- package/connectors/fal/package.json +1 -1
- package/connectors/fathom/package.json +1 -1
- package/connectors/fireworks/package.json +1 -1
- package/connectors/gitlab/package.json +1 -1
- package/connectors/googlechat/README.md +1 -2
- package/connectors/googledrive/src/api/client.ts +5 -5
- package/connectors/googledrive/src/api/files.ts +11 -11
- package/connectors/googledrive/src/api/folders.ts +2 -2
- package/connectors/googledrive/src/cli/index.ts +4 -4
- package/connectors/googledrive/src/utils/output.ts +3 -3
- package/connectors/googleforms/README.md +1 -2
- package/connectors/googleperspective/README.md +1 -2
- package/connectors/googlephotos/src/cli/index.ts +1 -1
- package/connectors/grafana/package.json +1 -1
- package/connectors/growbots/README.md +2 -2
- package/connectors/growbots/package.json +1 -1
- package/connectors/gumroad/package.json +1 -1
- package/connectors/gupshup/README.md +2 -2
- package/connectors/gupshup/package.json +1 -1
- package/connectors/guru/README.md +2 -2
- package/connectors/guru/package.json +1 -1
- package/connectors/hackernews/README.md +2 -2
- package/connectors/hackernews/package.json +1 -1
- package/connectors/halopsa/README.md +2 -2
- package/connectors/halopsa/package.json +1 -1
- package/connectors/handwrytten/README.md +2 -2
- package/connectors/handwrytten/package.json +1 -1
- package/connectors/hansei/README.md +2 -2
- package/connectors/hansei/package.json +1 -1
- package/connectors/harrypotterapi/README.md +2 -2
- package/connectors/harrypotterapi/package.json +1 -1
- package/connectors/harvest/README.md +2 -2
- package/connectors/harvest/package.json +1 -1
- package/connectors/headlesstesting/README.md +2 -2
- package/connectors/headlesstesting/package.json +1 -1
- package/connectors/homeassistant/package.json +1 -1
- package/connectors/klaviyo/package.json +1 -1
- package/connectors/lemonsqueezy/package.json +1 -1
- package/connectors/lighthouse/src/api/index.ts +1 -1
- package/connectors/linkedin/package.json +1 -1
- package/connectors/linkish/README.md +2 -2
- package/connectors/linkish/package.json +1 -1
- package/connectors/liveagent/README.md +2 -2
- package/connectors/liveagent/package.json +1 -1
- package/connectors/localazy/README.md +2 -2
- package/connectors/localazy/package.json +1 -1
- package/connectors/loginradius/README.md +2 -2
- package/connectors/loginradius/package.json +1 -1
- package/connectors/lokalise/README.md +2 -2
- package/connectors/lokalise/package.json +1 -1
- package/connectors/lonescale/README.md +2 -2
- package/connectors/lonescale/package.json +1 -1
- package/connectors/lucidchart/README.md +2 -2
- package/connectors/lucidchart/package.json +1 -1
- package/connectors/luma/package.json +1 -1
- package/connectors/magento2/README.md +2 -2
- package/connectors/magento2/package.json +1 -1
- package/connectors/mailcheck/README.md +2 -2
- package/connectors/mailcheck/package.json +1 -1
- package/connectors/mailchimp/package.json +1 -1
- package/connectors/mailerlite/README.md +2 -2
- package/connectors/mailerlite/package.json +1 -1
- package/connectors/mailersend/README.md +2 -2
- package/connectors/mailersend/package.json +1 -1
- package/connectors/mailify/README.md +2 -2
- package/connectors/mailify/package.json +1 -1
- package/connectors/mailjet/README.md +2 -2
- package/connectors/mailjet/package.json +1 -1
- package/connectors/mailmodo/README.md +2 -2
- package/connectors/mailmodo/package.json +1 -1
- package/connectors/malcore/README.md +2 -2
- package/connectors/malcore/package.json +1 -1
- package/connectors/mandrill/README.md +2 -2
- package/connectors/mandrill/package.json +1 -1
- package/connectors/marcomrobot/README.md +2 -2
- package/connectors/marcomrobot/package.json +1 -1
- package/connectors/marketingmasterio/README.md +2 -2
- package/connectors/marketingmasterio/package.json +1 -1
- package/connectors/marketplacer/README.md +2 -2
- package/connectors/marketplacer/package.json +1 -1
- package/connectors/marketstack/README.md +2 -2
- package/connectors/marketstack/package.json +1 -1
- package/connectors/matrix/README.md +1 -1
- package/connectors/matrix/package.json +1 -1
- package/connectors/mattermost/README.md +1 -1
- package/connectors/mattermost/package.json +1 -1
- package/connectors/mautic/README.md +1 -1
- package/connectors/mautic/package.json +1 -1
- package/connectors/mav/README.md +1 -1
- package/connectors/mav/package.json +1 -1
- package/connectors/maverick/README.md +1 -1
- package/connectors/maverick/package.json +1 -1
- package/connectors/mem/README.md +1 -1
- package/connectors/mem/package.json +1 -1
- package/connectors/messagebird/package.json +1 -1
- package/connectors/metabase/README.md +1 -1
- package/connectors/metabase/package.json +1 -1
- package/connectors/miro/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/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/netlify/package.json +1 -1
- package/connectors/okta/package.json +1 -1
- package/connectors/paddle/package.json +1 -1
- package/connectors/perplexity/package.json +1 -1
- package/connectors/pinterest/package.json +1 -1
- package/connectors/pipedrive/package.json +1 -1
- package/connectors/plaid/package.json +1 -1
- package/connectors/quickchart/README.md +2 -2
- package/connectors/quintadb/README.md +2 -2
- package/connectors/rabbitmq/README.md +2 -2
- package/connectors/radar/README.md +2 -2
- package/connectors/raindrop/README.md +2 -2
- package/connectors/rapid7insightvm/README.md +2 -2
- package/connectors/raventools/README.md +2 -2
- package/connectors/rawgvideogamesdatabase/README.md +2 -2
- package/connectors/rdstationcrm/README.md +2 -2
- package/connectors/readai/README.md +2 -2
- package/connectors/roboflow/package.json +1 -1
- package/connectors/runway/package.json +1 -1
- package/connectors/sendgrid/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/smartrecruiters/package.json +1 -1
- package/connectors/smtp2go/package.json +1 -1
- package/connectors/snowflake/package.json +1 -1
- package/connectors/sparkpost/package.json +1 -1
- package/connectors/split-io/package.json +1 -1
- package/connectors/split-io/src/api/client.test.ts +20 -0
- package/connectors/split-io/src/cli/index.ts +9 -9
- package/connectors/sprinklr/package.json +1 -1
- package/connectors/sprout-social/package.json +1 -1
- package/connectors/square/package.json +1 -1
- package/connectors/sse-trigger/package.json +1 -1
- package/connectors/stability-api-platform/AGENTS.md +1 -1
- package/connectors/standout/package.json +1 -1
- package/connectors/statuspage/package.json +1 -1
- package/connectors/stoplight/package.json +1 -1
- package/connectors/stoplight-api-platform/package.json +1 -1
- package/connectors/strand-ai/CLAUDE.md +1 -1
- package/connectors/stripe-financial-connections/package.json +1 -1
- package/connectors/stripe-terminal/package.json +1 -1
- package/connectors/stytch/package.json +1 -1
- package/connectors/sumo-logic/package.json +1 -1
- package/connectors/supabase/package.json +1 -1
- package/connectors/supabase-api-platform/package.json +1 -1
- package/connectors/sysdig/package.json +1 -1
- package/connectors/tableau/package.json +1 -1
- package/connectors/takecareos/README.md +2 -2
- package/connectors/takecareos/package.json +1 -1
- package/connectors/telegram/src/api/bot.ts +20 -0
- package/connectors/telegram/src/api/client.ts +32 -0
- package/connectors/telegram/src/api/files.test.ts +103 -0
- package/connectors/telegram/src/api/index.ts +1 -0
- package/connectors/telegram/src/api/messages.test.ts +8 -2
- package/connectors/telegram/src/cli/files.test.ts +40 -0
- package/connectors/telegram/src/cli/files.ts +38 -0
- package/connectors/telegram/src/cli/index.ts +27 -30
- package/connectors/telegram/src/cli/updates.test.ts +176 -0
- package/connectors/telegram/src/cli/updates.ts +95 -0
- package/connectors/telegram/src/index.ts +1 -0
- package/connectors/telegram/src/types/index.ts +13 -0
- package/connectors/terraform-cloud/package.json +1 -1
- package/connectors/textit/package.json +1 -1
- package/connectors/thousandeyes/package.json +1 -1
- package/connectors/ticket-tailor/package.json +1 -1
- package/connectors/ticketsource/package.json +1 -1
- package/connectors/tiktokads/README.md +1 -1
- package/connectors/time-saved/package.json +1 -1
- package/connectors/tipalti/package.json +1 -1
- package/connectors/tomtom/AGENTS.md +1 -1
- package/connectors/totp/package.json +1 -1
- package/connectors/traverse/package.json +1 -1
- package/connectors/travo-ai/package.json +1 -1
- package/connectors/trigger-dev/package.json +1 -1
- package/connectors/trigger-dev-api-platform/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/tyk-api-platform/package.json +1 -1
- package/connectors/umami/package.json +1 -1
- package/connectors/unifold/package.json +1 -1
- package/connectors/unione/package.json +1 -1
- package/connectors/uniprot/README.md +1 -1
- package/connectors/uniswap-api/package.json +1 -1
- package/connectors/ups/package.json +1 -1
- package/connectors/usereframe/package.json +1 -1
- package/connectors/vanta/package.json +1 -1
- package/connectors/vela/package.json +1 -1
- package/connectors/velum-labs/package.json +1 -1
- package/connectors/vercel/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/vertex-ai/package.json +1 -1
- package/connectors/vidyard/package.json +1 -1
- package/connectors/vonage/package.json +1 -1
- package/connectors/voygr/package.json +1 -1
- package/connectors/wait/package.json +1 -1
- package/connectors/walmart-marketplace/package.json +1 -1
- package/connectors/wato/package.json +1 -1
- package/connectors/wave-accounting/package.json +1 -1
- package/connectors/wayco/package.json +1 -1
- package/connectors/webpagetest/package.json +1 -1
- package/connectors/weezevent/package.json +1 -1
- package/connectors/wikipedia/src/api/client.ts +1 -1
- package/connectors/wildcard/package.json +1 -1
- package/connectors/windmill/package.json +1 -1
- package/connectors/wise/package.json +1 -1
- package/connectors/withai/package.json +1 -1
- package/connectors/wiz/CLAUDE.md +1 -1
- package/connectors/wiz/package.json +1 -1
- package/connectors/wordfence/package.json +1 -1
- package/connectors/wordfence-api-platform/package.json +1 -1
- package/connectors/workos/package.json +1 -1
- package/connectors/write-binary-file/package.json +1 -1
- package/connectors/xai/.env.example +1 -1
- package/connectors/xai-api-platform/src/api/client.test.ts +1 -1
- package/connectors/xai-api-platform/src/cli/index.ts +1 -1
- package/connectors/xai-api-platform/src/utils/config.ts +1 -1
- package/connectors/xai-grok/.env.example +1 -1
- package/connectors/xai-grok/src/api/client.test.ts +3 -3
- package/connectors/xai-grok/src/cli/index.ts +1 -1
- package/connectors/xai-grok/src/utils/config.ts +1 -1
- package/connectors/ynab/package.json +1 -1
- package/connectors/you-com/README.md +2 -2
- package/connectors/you-com/package.json +1 -1
- package/connectors/yousearch/README.md +1 -1
- package/connectors/yousign/package.json +1 -1
- package/connectors/zendesk/.env.example +4 -4
- package/connectors/zendesk/CLAUDE.md +2 -4
- package/connectors/zendesk/Makefile +21 -6
- package/connectors/zendesk/README.md +6 -10
- package/connectors/zendesk/SCAFFOLD.md +8 -7
- package/connectors/zendesk/nginx-connector.conf +8 -8
- package/connectors/zendesk/nginx.conf +8 -8
- package/connectors/zendesk/src/cli/index.ts +19 -8
- package/connectors/zendesk/src/server/index.ts +1 -1
- package/connectors/zendesk/src/utils/config.test.ts +70 -0
- package/connectors/zendesk/src/utils/config.ts +12 -2
- package/connectors/zendesk/src/utils/remote-url.test.ts +72 -0
- package/connectors/zerosettle/package.json +1 -1
- package/connectors/zoho-bigin/CLAUDE.md +1 -1
- package/connectors/zoho-campaigns/package.json +1 -1
- package/connectors/zoho-sign/package.json +1 -1
- package/connectors/zoho-subscriptions/CLAUDE.md +1 -1
- package/connectors/zohoprojects/CLAUDE.md +1 -1
- package/connectors/zolvo/package.json +1 -1
- package/connectors/zoom-api/package.json +1 -1
- package/connectors/zymbly/README.md +2 -2
- package/connectors/zymbly/package.json +1 -1
- package/dashboard/dist/assets/index-8uoGZF7B.js +280 -0
- package/dashboard/dist/index.html +1 -1
- package/dist/db/locks.d.ts +1 -1
- package/dist/index.js +27 -17
- package/dist/lib/connector-resolver.d.ts +1 -1
- package/dist/lib/llm.d.ts +1 -1
- package/dist/lib/open-browser.d.ts +18 -0
- package/dist/lib/open-browser.test.d.ts +1 -0
- package/package.json +16 -6
- package/connectors/tiktok-events-api/.test-home/.bun/install/cache/@t@/b0fec00ef4c1a326.pile +0 -0
- package/dashboard/dist/assets/index-XPlN-9Xy.js +0 -280
- package/dist/cli/commands/sync.d.ts +0 -2
- package/dist/db/pg-migrations.d.ts +0 -6
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
package/connectors/dhl/README.md
CHANGED
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -135,24 +135,24 @@ export class DriveClient {
|
|
|
135
135
|
|
|
136
136
|
async upload<T>(path: string, content: Buffer | Uint8Array, metadata?: Record<string, unknown>, params?: Record<string, string | number | boolean | undefined>, mimeType?: string): Promise<T> {
|
|
137
137
|
const accessToken = await getValidAccessToken();
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
// Create multipart request
|
|
140
140
|
const boundary = '-------314159265358979323846';
|
|
141
141
|
const delimiter = '\r\n--' + boundary + '\r\n';
|
|
142
142
|
const closeDelimiter = '\r\n--' + boundary + '--';
|
|
143
|
-
|
|
143
|
+
|
|
144
144
|
let multipartBody = '';
|
|
145
|
-
|
|
145
|
+
|
|
146
146
|
if (metadata) {
|
|
147
147
|
multipartBody += delimiter;
|
|
148
148
|
multipartBody += 'Content-Type: application/json; charset=UTF-8\r\n\r\n';
|
|
149
149
|
multipartBody += JSON.stringify(metadata);
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
|
|
152
152
|
multipartBody += delimiter;
|
|
153
153
|
multipartBody += 'Content-Type: ' + (mimeType || 'application/octet-stream') + '\r\n';
|
|
154
154
|
multipartBody += 'Content-Transfer-Encoding: base64\r\n\r\n';
|
|
155
|
-
|
|
155
|
+
|
|
156
156
|
const base64Content = Buffer.from(content).toString('base64');
|
|
157
157
|
multipartBody += base64Content;
|
|
158
158
|
multipartBody += closeDelimiter;
|
|
@@ -49,32 +49,32 @@ export class FilesApi {
|
|
|
49
49
|
*/
|
|
50
50
|
async download(fileId: string, destPath?: string): Promise<{ data: ArrayBuffer; filename: string }> {
|
|
51
51
|
const file = await this.get(fileId);
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
// Check if it's a Google Workspace file that needs export
|
|
54
54
|
if (file.mimeType.startsWith('application/vnd.google-apps.')) {
|
|
55
55
|
const exportMimeType = this.getExportMimeType(file.mimeType);
|
|
56
56
|
if (!exportMimeType) {
|
|
57
57
|
throw new Error('Cannot download Google Workspace file type: ' + file.mimeType);
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
const data = await this.client.export(fileId, exportMimeType);
|
|
61
61
|
const ext = this.getExtensionForMimeType(exportMimeType);
|
|
62
62
|
const filename = file.name + ext;
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
if (destPath) {
|
|
65
65
|
writeFileSync(destPath, Buffer.from(data));
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
return { data, filename };
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
const data = await this.client.download(fileId);
|
|
72
72
|
const filename = file.name;
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
if (destPath) {
|
|
75
75
|
writeFileSync(destPath, Buffer.from(data));
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
return { data, filename };
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -84,15 +84,15 @@ export class FilesApi {
|
|
|
84
84
|
async upload(filePath: string, options?: { name?: string; folderId?: string; mimeType?: string }): Promise<DriveFile> {
|
|
85
85
|
const content = readFileSync(filePath);
|
|
86
86
|
const name = options?.name || basename(filePath);
|
|
87
|
-
|
|
87
|
+
|
|
88
88
|
const metadata: Record<string, unknown> = { name };
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
if (options?.folderId) {
|
|
91
91
|
metadata.parents = [options.folderId];
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
const mimeType = options?.mimeType || this.getMimeTypeFromExtension(extname(filePath));
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
return this.client.upload<DriveFile>(
|
|
97
97
|
'/files',
|
|
98
98
|
content,
|
|
@@ -175,7 +175,7 @@ export class FilesApi {
|
|
|
175
175
|
*/
|
|
176
176
|
async copy(fileId: string, options?: { name?: string; folderId?: string }): Promise<DriveFile> {
|
|
177
177
|
const metadata: Record<string, unknown> = {};
|
|
178
|
-
|
|
178
|
+
|
|
179
179
|
if (options?.name) {
|
|
180
180
|
metadata.name = options.name;
|
|
181
181
|
}
|
|
@@ -239,7 +239,7 @@ export class FilesApi {
|
|
|
239
239
|
async search(query: string, options?: { pageSize?: number; pageToken?: string }): Promise<FileListResponse> {
|
|
240
240
|
// Build search query
|
|
241
241
|
const q = "fullText contains '" + query.replace(/'/g, "\\'") + "' and trashed = false";
|
|
242
|
-
|
|
242
|
+
|
|
243
243
|
return this.list({
|
|
244
244
|
q,
|
|
245
245
|
pageSize: options?.pageSize,
|
|
@@ -12,7 +12,7 @@ export class FoldersApi {
|
|
|
12
12
|
*/
|
|
13
13
|
async list(parentId?: string): Promise<FileListResponse> {
|
|
14
14
|
let q = "mimeType = '" + MIME_TYPES.FOLDER + "' and trashed = false";
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
if (parentId) {
|
|
17
17
|
q += " and '" + parentId + "' in parents";
|
|
18
18
|
}
|
|
@@ -120,7 +120,7 @@ export class FoldersApi {
|
|
|
120
120
|
while (currentId) {
|
|
121
121
|
const folder = await this.get(currentId);
|
|
122
122
|
path.unshift(folder);
|
|
123
|
-
|
|
123
|
+
|
|
124
124
|
if (folder.parents && folder.parents.length > 0) {
|
|
125
125
|
currentId = folder.parents[0] as string;
|
|
126
126
|
} else {
|
|
@@ -322,7 +322,7 @@ filesCmd
|
|
|
322
322
|
.action(async (opts) => {
|
|
323
323
|
try {
|
|
324
324
|
const drive = requireAuth();
|
|
325
|
-
|
|
325
|
+
|
|
326
326
|
let q = 'trashed = false';
|
|
327
327
|
if (opts.folder) {
|
|
328
328
|
q += " and '" + opts.folder + "' in parents";
|
|
@@ -380,9 +380,9 @@ filesCmd
|
|
|
380
380
|
try {
|
|
381
381
|
const drive = requireAuth();
|
|
382
382
|
info('Downloading file...');
|
|
383
|
-
|
|
383
|
+
|
|
384
384
|
const result = await drive.files.download(fileId, destination);
|
|
385
|
-
|
|
385
|
+
|
|
386
386
|
if (!destination) {
|
|
387
387
|
const destPath = join(process.cwd(), result.filename);
|
|
388
388
|
writeFileSync(destPath, Buffer.from(result.data));
|
|
@@ -1066,7 +1066,7 @@ program
|
|
|
1066
1066
|
info(' Limit: ' + (quota.limit ? formatBytes(quota.limit) : 'Unlimited'));
|
|
1067
1067
|
info(' In Drive: ' + formatBytes(quota.usageInDrive || '0'));
|
|
1068
1068
|
info(' In Trash: ' + formatBytes(quota.usageInDriveTrash || '0'));
|
|
1069
|
-
|
|
1069
|
+
|
|
1070
1070
|
if (quota.limit && quota.usage) {
|
|
1071
1071
|
const used = parseInt(quota.usage);
|
|
1072
1072
|
const limit = parseInt(quota.limit);
|
|
@@ -121,15 +121,15 @@ export function print(data: unknown, format: OutputFormat = 'pretty'): void {
|
|
|
121
121
|
export function formatBytes(bytes: number | string): string {
|
|
122
122
|
const b = typeof bytes === 'string' ? parseInt(bytes, 10) : bytes;
|
|
123
123
|
if (isNaN(b)) return '0 B';
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
126
126
|
let unitIndex = 0;
|
|
127
127
|
let size = b;
|
|
128
|
-
|
|
128
|
+
|
|
129
129
|
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
130
130
|
size /= 1024;
|
|
131
131
|
unitIndex++;
|
|
132
132
|
}
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
return size.toFixed(unitIndex === 0 ? 0 : 2) + ' ' + units[unitIndex];
|
|
135
135
|
}
|
|
@@ -122,7 +122,7 @@ authCmd
|
|
|
122
122
|
const userInfo = await getUserInfo(result.tokens!.accessToken);
|
|
123
123
|
const email = userInfo.email;
|
|
124
124
|
|
|
125
|
-
// Convert email to profile slug:
|
|
125
|
+
// Convert email to profile slug: user@example.com → userexamplecom
|
|
126
126
|
const profileSlug = email.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
|
|
127
127
|
|
|
128
128
|
// Create profile if it doesn't exist
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -16,8 +16,8 @@ A TypeScript scaffold for building API connector CLIs with multi-profile support
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Clone for your connector
|
|
19
|
-
git clone https://github.com/hasna/
|
|
20
|
-
cd connect-yourapi
|
|
19
|
+
git clone https://github.com/hasna/apps.git
|
|
20
|
+
cd apps/connectors/connectors/connect-yourapi
|
|
21
21
|
|
|
22
22
|
# Update package.json name
|
|
23
23
|
# Change "@hasna/scaffold-connector" to "@hasna/connect-yourapi"
|
|
@@ -36,7 +36,7 @@ export class Lighthouse {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
async listMaintenanceRequests(propertyId: string): Promise<LHMaintenanceRequest[]> {
|
|
39
|
-
return this.client.request<LHMaintenanceRequest[]>(`/properties/${propertyId}/maintenance`);
|
|
39
|
+
return this.client.request<LHMaintenanceRequest[]>(`/properties/${propertyId}/maintenance`);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
getClient(): LighthouseClient { return this.client; }
|