@hasna/connectors 0.4.0 → 0.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 +189 -2
- package/bin/mcp.js +176 -1
- package/bin/serve.js +175 -0
- package/connectors/connect-airtable/.env.example +11 -0
- package/connectors/connect-airtable/CLAUDE.md +121 -0
- package/connectors/connect-airtable/README.md +193 -0
- package/connectors/connect-airtable/package.json +50 -0
- package/connectors/connect-airtable/src/api/client.ts +139 -0
- package/connectors/connect-airtable/src/api/index.ts +405 -0
- package/connectors/connect-airtable/src/cli/index.ts +637 -0
- package/connectors/connect-airtable/src/index.ts +20 -0
- package/connectors/connect-airtable/src/types/index.ts +349 -0
- package/connectors/connect-airtable/src/utils/config.ts +197 -0
- package/connectors/connect-airtable/tsconfig.json +16 -0
- package/connectors/connect-amplitude/.env.example +11 -0
- package/connectors/connect-amplitude/CLAUDE.md +121 -0
- package/connectors/connect-amplitude/README.md +193 -0
- package/connectors/connect-amplitude/package.json +51 -0
- package/connectors/connect-amplitude/src/api/client.ts +144 -0
- package/connectors/connect-amplitude/src/api/index.ts +215 -0
- package/connectors/connect-amplitude/src/cli/index.ts +532 -0
- package/connectors/connect-amplitude/src/index.ts +22 -0
- package/connectors/connect-amplitude/src/types/index.ts +329 -0
- package/connectors/connect-amplitude/src/utils/config.ts +208 -0
- package/connectors/connect-amplitude/tsconfig.json +16 -0
- package/connectors/connect-calendly/.env.example +11 -0
- package/connectors/connect-calendly/CLAUDE.md +272 -0
- package/connectors/connect-calendly/README.md +193 -0
- package/connectors/connect-calendly/package.json +51 -0
- package/connectors/connect-calendly/scripts/release.ts +179 -0
- package/connectors/connect-calendly/src/api/client.ts +213 -0
- package/connectors/connect-calendly/src/api/example.ts +48 -0
- package/connectors/connect-calendly/src/api/index.ts +51 -0
- package/connectors/connect-calendly/src/cli/index.ts +254 -0
- package/connectors/connect-calendly/src/index.ts +103 -0
- package/connectors/connect-calendly/src/types/index.ts +237 -0
- package/connectors/connect-calendly/src/utils/auth.ts +274 -0
- package/connectors/connect-calendly/src/utils/bulk.ts +212 -0
- package/connectors/connect-calendly/src/utils/config.ts +326 -0
- package/connectors/connect-calendly/src/utils/output.ts +175 -0
- package/connectors/connect-calendly/src/utils/settings.ts +114 -0
- package/connectors/connect-calendly/src/utils/storage.ts +198 -0
- package/connectors/connect-calendly/tsconfig.json +16 -0
- package/connectors/connect-convertkit/.env.example +11 -0
- package/connectors/connect-convertkit/CLAUDE.md +272 -0
- package/connectors/connect-convertkit/README.md +193 -0
- package/connectors/connect-convertkit/package.json +51 -0
- package/connectors/connect-convertkit/scripts/release.ts +179 -0
- package/connectors/connect-convertkit/src/api/client.ts +213 -0
- package/connectors/connect-convertkit/src/api/example.ts +48 -0
- package/connectors/connect-convertkit/src/api/index.ts +51 -0
- package/connectors/connect-convertkit/src/cli/index.ts +254 -0
- package/connectors/connect-convertkit/src/index.ts +103 -0
- package/connectors/connect-convertkit/src/types/index.ts +237 -0
- package/connectors/connect-convertkit/src/utils/auth.ts +274 -0
- package/connectors/connect-convertkit/src/utils/bulk.ts +212 -0
- package/connectors/connect-convertkit/src/utils/config.ts +326 -0
- package/connectors/connect-convertkit/src/utils/output.ts +175 -0
- package/connectors/connect-convertkit/src/utils/settings.ts +114 -0
- package/connectors/connect-convertkit/src/utils/storage.ts +198 -0
- package/connectors/connect-convertkit/tsconfig.json +16 -0
- package/connectors/connect-crisp/.env.example +11 -0
- package/connectors/connect-crisp/CLAUDE.md +272 -0
- package/connectors/connect-crisp/README.md +193 -0
- package/connectors/connect-crisp/package.json +51 -0
- package/connectors/connect-crisp/scripts/release.ts +179 -0
- package/connectors/connect-crisp/src/api/client.ts +213 -0
- package/connectors/connect-crisp/src/api/example.ts +48 -0
- package/connectors/connect-crisp/src/api/index.ts +51 -0
- package/connectors/connect-crisp/src/cli/index.ts +254 -0
- package/connectors/connect-crisp/src/index.ts +103 -0
- package/connectors/connect-crisp/src/types/index.ts +237 -0
- package/connectors/connect-crisp/src/utils/auth.ts +274 -0
- package/connectors/connect-crisp/src/utils/bulk.ts +212 -0
- package/connectors/connect-crisp/src/utils/config.ts +326 -0
- package/connectors/connect-crisp/src/utils/output.ts +175 -0
- package/connectors/connect-crisp/src/utils/settings.ts +114 -0
- package/connectors/connect-crisp/src/utils/storage.ts +198 -0
- package/connectors/connect-crisp/tsconfig.json +16 -0
- package/connectors/connect-docusign/.env.example +11 -0
- package/connectors/connect-docusign/CLAUDE.md +128 -0
- package/connectors/connect-docusign/README.md +193 -0
- package/connectors/connect-docusign/package.json +52 -0
- package/connectors/connect-docusign/src/api/client.ts +133 -0
- package/connectors/connect-docusign/src/api/index.ts +178 -0
- package/connectors/connect-docusign/src/cli/index.ts +381 -0
- package/connectors/connect-docusign/src/index.ts +23 -0
- package/connectors/connect-docusign/src/types/index.ts +208 -0
- package/connectors/connect-docusign/src/utils/config.ts +125 -0
- package/connectors/connect-docusign/src/utils/output.ts +119 -0
- package/connectors/connect-docusign/tsconfig.json +16 -0
- package/connectors/connect-drift/.env.example +11 -0
- package/connectors/connect-drift/CLAUDE.md +272 -0
- package/connectors/connect-drift/README.md +193 -0
- package/connectors/connect-drift/package.json +51 -0
- package/connectors/connect-drift/scripts/release.ts +179 -0
- package/connectors/connect-drift/src/api/client.ts +213 -0
- package/connectors/connect-drift/src/api/example.ts +48 -0
- package/connectors/connect-drift/src/api/index.ts +51 -0
- package/connectors/connect-drift/src/cli/index.ts +254 -0
- package/connectors/connect-drift/src/index.ts +103 -0
- package/connectors/connect-drift/src/types/index.ts +237 -0
- package/connectors/connect-drift/src/utils/auth.ts +274 -0
- package/connectors/connect-drift/src/utils/bulk.ts +212 -0
- package/connectors/connect-drift/src/utils/config.ts +326 -0
- package/connectors/connect-drift/src/utils/output.ts +175 -0
- package/connectors/connect-drift/src/utils/settings.ts +114 -0
- package/connectors/connect-drift/src/utils/storage.ts +198 -0
- package/connectors/connect-drift/tsconfig.json +16 -0
- package/connectors/connect-freshdesk/.env.example +11 -0
- package/connectors/connect-freshdesk/CLAUDE.md +272 -0
- package/connectors/connect-freshdesk/README.md +193 -0
- package/connectors/connect-freshdesk/package.json +51 -0
- package/connectors/connect-freshdesk/scripts/release.ts +179 -0
- package/connectors/connect-freshdesk/src/api/client.ts +213 -0
- package/connectors/connect-freshdesk/src/api/example.ts +48 -0
- package/connectors/connect-freshdesk/src/api/index.ts +51 -0
- package/connectors/connect-freshdesk/src/cli/index.ts +254 -0
- package/connectors/connect-freshdesk/src/index.ts +103 -0
- package/connectors/connect-freshdesk/src/types/index.ts +237 -0
- package/connectors/connect-freshdesk/src/utils/auth.ts +274 -0
- package/connectors/connect-freshdesk/src/utils/bulk.ts +212 -0
- package/connectors/connect-freshdesk/src/utils/config.ts +326 -0
- package/connectors/connect-freshdesk/src/utils/output.ts +175 -0
- package/connectors/connect-freshdesk/src/utils/settings.ts +114 -0
- package/connectors/connect-freshdesk/src/utils/storage.ts +198 -0
- package/connectors/connect-freshdesk/tsconfig.json +16 -0
- package/connectors/connect-gumroad/.env.example +11 -0
- package/connectors/connect-gumroad/CLAUDE.md +272 -0
- package/connectors/connect-gumroad/README.md +193 -0
- package/connectors/connect-gumroad/package.json +51 -0
- package/connectors/connect-gumroad/scripts/release.ts +179 -0
- package/connectors/connect-gumroad/src/api/client.ts +213 -0
- package/connectors/connect-gumroad/src/api/example.ts +48 -0
- package/connectors/connect-gumroad/src/api/index.ts +51 -0
- package/connectors/connect-gumroad/src/cli/index.ts +254 -0
- package/connectors/connect-gumroad/src/index.ts +103 -0
- package/connectors/connect-gumroad/src/types/index.ts +237 -0
- package/connectors/connect-gumroad/src/utils/auth.ts +274 -0
- package/connectors/connect-gumroad/src/utils/bulk.ts +212 -0
- package/connectors/connect-gumroad/src/utils/config.ts +326 -0
- package/connectors/connect-gumroad/src/utils/output.ts +175 -0
- package/connectors/connect-gumroad/src/utils/settings.ts +114 -0
- package/connectors/connect-gumroad/src/utils/storage.ts +198 -0
- package/connectors/connect-gumroad/tsconfig.json +16 -0
- package/connectors/connect-hubspot/.env.example +11 -0
- package/connectors/connect-hubspot/CLAUDE.md +128 -0
- package/connectors/connect-hubspot/README.md +193 -0
- package/connectors/connect-hubspot/package.json +52 -0
- package/connectors/connect-hubspot/src/api/client.ts +136 -0
- package/connectors/connect-hubspot/src/api/index.ts +379 -0
- package/connectors/connect-hubspot/src/cli/index.ts +589 -0
- package/connectors/connect-hubspot/src/index.ts +21 -0
- package/connectors/connect-hubspot/src/types/index.ts +285 -0
- package/connectors/connect-hubspot/src/utils/config.ts +205 -0
- package/connectors/connect-hubspot/src/utils/output.ts +119 -0
- package/connectors/connect-hubspot/tsconfig.json +16 -0
- package/connectors/connect-intercom/.env.example +11 -0
- package/connectors/connect-intercom/CLAUDE.md +131 -0
- package/connectors/connect-intercom/README.md +193 -0
- package/connectors/connect-intercom/package.json +52 -0
- package/connectors/connect-intercom/src/api/client.ts +132 -0
- package/connectors/connect-intercom/src/api/index.ts +366 -0
- package/connectors/connect-intercom/src/cli/index.ts +831 -0
- package/connectors/connect-intercom/src/index.ts +21 -0
- package/connectors/connect-intercom/src/types/index.ts +650 -0
- package/connectors/connect-intercom/src/utils/config.ts +157 -0
- package/connectors/connect-intercom/src/utils/output.ts +119 -0
- package/connectors/connect-intercom/tsconfig.json +16 -0
- package/connectors/connect-lemonsqueezy/.env.example +11 -0
- package/connectors/connect-lemonsqueezy/CLAUDE.md +128 -0
- package/connectors/connect-lemonsqueezy/README.md +193 -0
- package/connectors/connect-lemonsqueezy/package.json +52 -0
- package/connectors/connect-lemonsqueezy/src/api/client.ts +133 -0
- package/connectors/connect-lemonsqueezy/src/api/index.ts +502 -0
- package/connectors/connect-lemonsqueezy/src/cli/index.ts +723 -0
- package/connectors/connect-lemonsqueezy/src/index.ts +21 -0
- package/connectors/connect-lemonsqueezy/src/types/index.ts +353 -0
- package/connectors/connect-lemonsqueezy/src/utils/config.ts +205 -0
- package/connectors/connect-lemonsqueezy/src/utils/output.ts +119 -0
- package/connectors/connect-lemonsqueezy/tsconfig.json +16 -0
- package/connectors/connect-linkedin/.env.example +11 -0
- package/connectors/connect-linkedin/CLAUDE.md +124 -0
- package/connectors/connect-linkedin/README.md +193 -0
- package/connectors/connect-linkedin/package.json +52 -0
- package/connectors/connect-linkedin/src/api/client.ts +132 -0
- package/connectors/connect-linkedin/src/api/index.ts +313 -0
- package/connectors/connect-linkedin/src/cli/index.ts +548 -0
- package/connectors/connect-linkedin/src/index.ts +21 -0
- package/connectors/connect-linkedin/src/types/index.ts +472 -0
- package/connectors/connect-linkedin/src/utils/config.ts +157 -0
- package/connectors/connect-linkedin/src/utils/output.ts +119 -0
- package/connectors/connect-linkedin/tsconfig.json +16 -0
- package/connectors/connect-mailchimp/.env.example +11 -0
- package/connectors/connect-mailchimp/CLAUDE.md +127 -0
- package/connectors/connect-mailchimp/README.md +193 -0
- package/connectors/connect-mailchimp/package.json +52 -0
- package/connectors/connect-mailchimp/src/api/client.ts +162 -0
- package/connectors/connect-mailchimp/src/api/index.ts +580 -0
- package/connectors/connect-mailchimp/src/cli/index.ts +822 -0
- package/connectors/connect-mailchimp/src/index.ts +23 -0
- package/connectors/connect-mailchimp/src/types/index.ts +585 -0
- package/connectors/connect-mailchimp/src/utils/config.ts +208 -0
- package/connectors/connect-mailchimp/src/utils/output.ts +119 -0
- package/connectors/connect-mailchimp/tsconfig.json +16 -0
- package/connectors/connect-mongodb/.env.example +11 -0
- package/connectors/connect-mongodb/CLAUDE.md +272 -0
- package/connectors/connect-mongodb/README.md +193 -0
- package/connectors/connect-mongodb/package.json +51 -0
- package/connectors/connect-mongodb/scripts/release.ts +179 -0
- package/connectors/connect-mongodb/src/api/client.ts +213 -0
- package/connectors/connect-mongodb/src/api/example.ts +48 -0
- package/connectors/connect-mongodb/src/api/index.ts +51 -0
- package/connectors/connect-mongodb/src/cli/index.ts +254 -0
- package/connectors/connect-mongodb/src/index.ts +103 -0
- package/connectors/connect-mongodb/src/types/index.ts +237 -0
- package/connectors/connect-mongodb/src/utils/auth.ts +274 -0
- package/connectors/connect-mongodb/src/utils/bulk.ts +212 -0
- package/connectors/connect-mongodb/src/utils/config.ts +326 -0
- package/connectors/connect-mongodb/src/utils/output.ts +175 -0
- package/connectors/connect-mongodb/src/utils/settings.ts +114 -0
- package/connectors/connect-mongodb/src/utils/storage.ts +198 -0
- package/connectors/connect-mongodb/tsconfig.json +16 -0
- package/connectors/connect-netlify/.env.example +11 -0
- package/connectors/connect-netlify/CLAUDE.md +170 -0
- package/connectors/connect-netlify/README.md +193 -0
- package/connectors/connect-netlify/package.json +53 -0
- package/connectors/connect-netlify/src/api/client.ts +132 -0
- package/connectors/connect-netlify/src/api/index.ts +533 -0
- package/connectors/connect-netlify/src/cli/index.ts +985 -0
- package/connectors/connect-netlify/src/index.ts +22 -0
- package/connectors/connect-netlify/src/types/index.ts +423 -0
- package/connectors/connect-netlify/src/utils/config.ts +171 -0
- package/connectors/connect-netlify/src/utils/output.ts +119 -0
- package/connectors/connect-netlify/tsconfig.json +16 -0
- package/connectors/connect-paypal/.env.example +11 -0
- package/connectors/connect-paypal/CLAUDE.md +128 -0
- package/connectors/connect-paypal/README.md +193 -0
- package/connectors/connect-paypal/package.json +51 -0
- package/connectors/connect-paypal/src/api/client.ts +182 -0
- package/connectors/connect-paypal/src/api/index.ts +235 -0
- package/connectors/connect-paypal/src/cli/index.ts +559 -0
- package/connectors/connect-paypal/src/index.ts +23 -0
- package/connectors/connect-paypal/src/types/index.ts +377 -0
- package/connectors/connect-paypal/src/utils/config.ts +125 -0
- package/connectors/connect-paypal/src/utils/output.ts +119 -0
- package/connectors/connect-paypal/tsconfig.json +16 -0
- package/connectors/connect-pinterest/.env.example +11 -0
- package/connectors/connect-pinterest/CLAUDE.md +115 -0
- package/connectors/connect-pinterest/README.md +193 -0
- package/connectors/connect-pinterest/package.json +52 -0
- package/connectors/connect-pinterest/src/api/client.ts +125 -0
- package/connectors/connect-pinterest/src/api/index.ts +203 -0
- package/connectors/connect-pinterest/src/cli/index.ts +653 -0
- package/connectors/connect-pinterest/src/index.ts +21 -0
- package/connectors/connect-pinterest/src/types/index.ts +268 -0
- package/connectors/connect-pinterest/src/utils/config.ts +157 -0
- package/connectors/connect-pinterest/src/utils/output.ts +119 -0
- package/connectors/connect-pinterest/tsconfig.json +16 -0
- package/connectors/connect-posthog/.env.example +11 -0
- package/connectors/connect-posthog/CLAUDE.md +272 -0
- package/connectors/connect-posthog/README.md +193 -0
- package/connectors/connect-posthog/package.json +51 -0
- package/connectors/connect-posthog/scripts/release.ts +179 -0
- package/connectors/connect-posthog/src/api/client.ts +213 -0
- package/connectors/connect-posthog/src/api/example.ts +48 -0
- package/connectors/connect-posthog/src/api/index.ts +51 -0
- package/connectors/connect-posthog/src/cli/index.ts +254 -0
- package/connectors/connect-posthog/src/index.ts +103 -0
- package/connectors/connect-posthog/src/types/index.ts +237 -0
- package/connectors/connect-posthog/src/utils/auth.ts +274 -0
- package/connectors/connect-posthog/src/utils/bulk.ts +212 -0
- package/connectors/connect-posthog/src/utils/config.ts +326 -0
- package/connectors/connect-posthog/src/utils/output.ts +175 -0
- package/connectors/connect-posthog/src/utils/settings.ts +114 -0
- package/connectors/connect-posthog/src/utils/storage.ts +198 -0
- package/connectors/connect-posthog/tsconfig.json +16 -0
- package/connectors/connect-salesforce/.env.example +11 -0
- package/connectors/connect-salesforce/CLAUDE.md +128 -0
- package/connectors/connect-salesforce/README.md +193 -0
- package/connectors/connect-salesforce/package.json +53 -0
- package/connectors/connect-salesforce/src/api/client.ts +150 -0
- package/connectors/connect-salesforce/src/api/index.ts +367 -0
- package/connectors/connect-salesforce/src/cli/index.ts +594 -0
- package/connectors/connect-salesforce/src/index.ts +21 -0
- package/connectors/connect-salesforce/src/types/index.ts +292 -0
- package/connectors/connect-salesforce/src/utils/config.ts +208 -0
- package/connectors/connect-salesforce/src/utils/output.ts +119 -0
- package/connectors/connect-salesforce/tsconfig.json +16 -0
- package/connectors/connect-segment/.env.example +11 -0
- package/connectors/connect-segment/CLAUDE.md +272 -0
- package/connectors/connect-segment/README.md +193 -0
- package/connectors/connect-segment/package.json +51 -0
- package/connectors/connect-segment/scripts/release.ts +179 -0
- package/connectors/connect-segment/src/api/client.ts +213 -0
- package/connectors/connect-segment/src/api/example.ts +48 -0
- package/connectors/connect-segment/src/api/index.ts +51 -0
- package/connectors/connect-segment/src/cli/index.ts +254 -0
- package/connectors/connect-segment/src/index.ts +103 -0
- package/connectors/connect-segment/src/types/index.ts +237 -0
- package/connectors/connect-segment/src/utils/auth.ts +274 -0
- package/connectors/connect-segment/src/utils/bulk.ts +212 -0
- package/connectors/connect-segment/src/utils/config.ts +326 -0
- package/connectors/connect-segment/src/utils/output.ts +175 -0
- package/connectors/connect-segment/src/utils/settings.ts +114 -0
- package/connectors/connect-segment/src/utils/storage.ts +198 -0
- package/connectors/connect-segment/tsconfig.json +16 -0
- package/connectors/connect-sendgrid/.env.example +11 -0
- package/connectors/connect-sendgrid/CLAUDE.md +125 -0
- package/connectors/connect-sendgrid/README.md +193 -0
- package/connectors/connect-sendgrid/package.json +53 -0
- package/connectors/connect-sendgrid/src/api/client.ts +137 -0
- package/connectors/connect-sendgrid/src/api/index.ts +588 -0
- package/connectors/connect-sendgrid/src/cli/index.ts +764 -0
- package/connectors/connect-sendgrid/src/index.ts +21 -0
- package/connectors/connect-sendgrid/src/types/index.ts +403 -0
- package/connectors/connect-sendgrid/src/utils/config.ts +197 -0
- package/connectors/connect-sendgrid/src/utils/output.ts +119 -0
- package/connectors/connect-sendgrid/tsconfig.json +16 -0
- package/connectors/connect-supabase/.env.example +11 -0
- package/connectors/connect-supabase/CLAUDE.md +132 -0
- package/connectors/connect-supabase/README.md +193 -0
- package/connectors/connect-supabase/package.json +52 -0
- package/connectors/connect-supabase/src/api/client.ts +231 -0
- package/connectors/connect-supabase/src/api/index.ts +439 -0
- package/connectors/connect-supabase/src/cli/index.ts +691 -0
- package/connectors/connect-supabase/src/index.ts +24 -0
- package/connectors/connect-supabase/src/types/index.ts +215 -0
- package/connectors/connect-supabase/src/utils/config.ts +219 -0
- package/connectors/connect-supabase/tsconfig.json +16 -0
- package/connectors/connect-vercel/.env.example +11 -0
- package/connectors/connect-vercel/CLAUDE.md +142 -0
- package/connectors/connect-vercel/README.md +193 -0
- package/connectors/connect-vercel/package.json +52 -0
- package/connectors/connect-vercel/src/api/client.ts +139 -0
- package/connectors/connect-vercel/src/api/index.ts +384 -0
- package/connectors/connect-vercel/src/cli/index.ts +740 -0
- package/connectors/connect-vercel/src/index.ts +24 -0
- package/connectors/connect-vercel/src/types/index.ts +350 -0
- package/connectors/connect-vercel/src/utils/config.ts +182 -0
- package/connectors/connect-vercel/src/utils/output.ts +119 -0
- package/connectors/connect-vercel/tsconfig.json +16 -0
- package/connectors/connect-zendesk/.env.example +10 -0
- package/connectors/connect-zendesk/.github/workflows/deploy.yml +51 -0
- package/connectors/connect-zendesk/CLAUDE.md +78 -0
- package/connectors/connect-zendesk/Makefile +129 -0
- package/connectors/connect-zendesk/README.md +295 -0
- package/connectors/connect-zendesk/SCAFFOLD.md +178 -0
- package/connectors/connect-zendesk/nginx-connector.conf +218 -0
- package/connectors/connect-zendesk/nginx.conf +61 -0
- package/connectors/connect-zendesk/package.json +71 -0
- package/connectors/connect-zendesk/scripts/init.sh +62 -0
- package/connectors/connect-zendesk/scripts/publish.ts +210 -0
- package/connectors/connect-zendesk/server/index.js +142 -0
- package/connectors/connect-zendesk/src/api/automations.ts +95 -0
- package/connectors/connect-zendesk/src/api/brands.ts +80 -0
- package/connectors/connect-zendesk/src/api/bulk.ts +838 -0
- package/connectors/connect-zendesk/src/api/client.test.ts +315 -0
- package/connectors/connect-zendesk/src/api/client.ts +173 -0
- package/connectors/connect-zendesk/src/api/example.ts +59 -0
- package/connectors/connect-zendesk/src/api/groups.ts +60 -0
- package/connectors/connect-zendesk/src/api/index.test.ts +111 -0
- package/connectors/connect-zendesk/src/api/index.ts +131 -0
- package/connectors/connect-zendesk/src/api/macros.ts +124 -0
- package/connectors/connect-zendesk/src/api/organizations.ts +85 -0
- package/connectors/connect-zendesk/src/api/slas.ts +80 -0
- package/connectors/connect-zendesk/src/api/ticket-fields.ts +98 -0
- package/connectors/connect-zendesk/src/api/tickets.test.ts +215 -0
- package/connectors/connect-zendesk/src/api/tickets.ts +103 -0
- package/connectors/connect-zendesk/src/api/triggers.test.ts +204 -0
- package/connectors/connect-zendesk/src/api/triggers.ts +125 -0
- package/connectors/connect-zendesk/src/api/users.test.ts +180 -0
- package/connectors/connect-zendesk/src/api/users.ts +108 -0
- package/connectors/connect-zendesk/src/api/views.test.ts +223 -0
- package/connectors/connect-zendesk/src/api/views.ts +145 -0
- package/connectors/connect-zendesk/src/api/webhooks.test.ts +208 -0
- package/connectors/connect-zendesk/src/api/webhooks.ts +118 -0
- package/connectors/connect-zendesk/src/cli/index.ts +1478 -0
- package/connectors/connect-zendesk/src/index.ts +36 -0
- package/connectors/connect-zendesk/src/server/index.ts +204 -0
- package/connectors/connect-zendesk/src/types/index.ts +910 -0
- package/connectors/connect-zendesk/src/utils/config.test.ts +193 -0
- package/connectors/connect-zendesk/src/utils/config.ts +526 -0
- package/connectors/connect-zendesk/src/utils/export.ts +338 -0
- package/connectors/connect-zendesk/src/utils/logger.ts +105 -0
- package/connectors/connect-zendesk/src/utils/output.test.ts +137 -0
- package/connectors/connect-zendesk/src/utils/output.ts +119 -0
- package/connectors/connect-zendesk/tsconfig.json +31 -0
- package/dist/index.js +175 -0
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Supabase Connector
|
|
2
|
+
// A TypeScript wrapper for the Supabase API
|
|
3
|
+
|
|
4
|
+
export { Supabase } from './api';
|
|
5
|
+
export { SupabaseClient } from './api/client';
|
|
6
|
+
export * from './types';
|
|
7
|
+
|
|
8
|
+
// Export config utilities
|
|
9
|
+
export {
|
|
10
|
+
getProjectUrl,
|
|
11
|
+
setProjectUrl,
|
|
12
|
+
getServiceRoleKey,
|
|
13
|
+
setServiceRoleKey,
|
|
14
|
+
getAnonKey,
|
|
15
|
+
setAnonKey,
|
|
16
|
+
getCurrentProfile,
|
|
17
|
+
setCurrentProfile,
|
|
18
|
+
listProfiles,
|
|
19
|
+
createProfile,
|
|
20
|
+
deleteProfile,
|
|
21
|
+
loadProfile,
|
|
22
|
+
saveProfile,
|
|
23
|
+
clearConfig,
|
|
24
|
+
} from './utils/config';
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
// Supabase Connector Types
|
|
2
|
+
|
|
3
|
+
// ============================================
|
|
4
|
+
// Configuration
|
|
5
|
+
// ============================================
|
|
6
|
+
|
|
7
|
+
export interface SupabaseConfig {
|
|
8
|
+
projectUrl: string;
|
|
9
|
+
serviceRoleKey?: string;
|
|
10
|
+
anonKey?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ============================================
|
|
14
|
+
// Common Types
|
|
15
|
+
// ============================================
|
|
16
|
+
|
|
17
|
+
export type OutputFormat = 'json' | 'pretty';
|
|
18
|
+
|
|
19
|
+
// ============================================
|
|
20
|
+
// Auth Types
|
|
21
|
+
// ============================================
|
|
22
|
+
|
|
23
|
+
export interface User {
|
|
24
|
+
id: string;
|
|
25
|
+
aud: string;
|
|
26
|
+
role?: string;
|
|
27
|
+
email?: string;
|
|
28
|
+
email_confirmed_at?: string;
|
|
29
|
+
phone?: string;
|
|
30
|
+
phone_confirmed_at?: string;
|
|
31
|
+
confirmed_at?: string;
|
|
32
|
+
last_sign_in_at?: string;
|
|
33
|
+
app_metadata: {
|
|
34
|
+
provider?: string;
|
|
35
|
+
providers?: string[];
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
};
|
|
38
|
+
user_metadata: Record<string, unknown>;
|
|
39
|
+
identities?: Identity[];
|
|
40
|
+
created_at: string;
|
|
41
|
+
updated_at: string;
|
|
42
|
+
is_anonymous?: boolean;
|
|
43
|
+
banned_until?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface Identity {
|
|
47
|
+
id: string;
|
|
48
|
+
user_id: string;
|
|
49
|
+
identity_data: Record<string, unknown>;
|
|
50
|
+
identity_id: string;
|
|
51
|
+
provider: string;
|
|
52
|
+
created_at: string;
|
|
53
|
+
last_sign_in_at: string;
|
|
54
|
+
updated_at: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface Session {
|
|
58
|
+
access_token: string;
|
|
59
|
+
token_type: string;
|
|
60
|
+
expires_in: number;
|
|
61
|
+
expires_at?: number;
|
|
62
|
+
refresh_token: string;
|
|
63
|
+
user: User;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface AuthResponse {
|
|
67
|
+
user: User | null;
|
|
68
|
+
session: Session | null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface AdminUserAttributes {
|
|
72
|
+
email?: string;
|
|
73
|
+
phone?: string;
|
|
74
|
+
password?: string;
|
|
75
|
+
email_confirm?: boolean;
|
|
76
|
+
phone_confirm?: boolean;
|
|
77
|
+
user_metadata?: Record<string, unknown>;
|
|
78
|
+
app_metadata?: Record<string, unknown>;
|
|
79
|
+
ban_duration?: string;
|
|
80
|
+
role?: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface ListUsersResult {
|
|
84
|
+
users: User[];
|
|
85
|
+
aud?: string;
|
|
86
|
+
nextPage?: number;
|
|
87
|
+
lastPage?: number;
|
|
88
|
+
total?: number;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface Factor {
|
|
92
|
+
id: string;
|
|
93
|
+
friendly_name?: string;
|
|
94
|
+
factor_type: 'totp' | 'phone';
|
|
95
|
+
status: 'verified' | 'unverified';
|
|
96
|
+
created_at: string;
|
|
97
|
+
updated_at: string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// ============================================
|
|
101
|
+
// Storage Types
|
|
102
|
+
// ============================================
|
|
103
|
+
|
|
104
|
+
export interface Bucket {
|
|
105
|
+
id: string;
|
|
106
|
+
name: string;
|
|
107
|
+
owner?: string;
|
|
108
|
+
created_at: string;
|
|
109
|
+
updated_at: string;
|
|
110
|
+
public: boolean;
|
|
111
|
+
file_size_limit?: number;
|
|
112
|
+
allowed_mime_types?: string[];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface FileObject {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
bucket_id: string;
|
|
119
|
+
owner?: string;
|
|
120
|
+
created_at: string;
|
|
121
|
+
updated_at: string;
|
|
122
|
+
last_accessed_at?: string;
|
|
123
|
+
metadata: Record<string, unknown>;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface SignedUrl {
|
|
127
|
+
signedUrl: string;
|
|
128
|
+
token?: string;
|
|
129
|
+
path?: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface UploadResult {
|
|
133
|
+
id: string;
|
|
134
|
+
path: string;
|
|
135
|
+
fullPath: string;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// ============================================
|
|
139
|
+
// Database Types (REST API)
|
|
140
|
+
// ============================================
|
|
141
|
+
|
|
142
|
+
export interface TableInfo {
|
|
143
|
+
table_name: string;
|
|
144
|
+
table_schema: string;
|
|
145
|
+
table_type: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export interface ColumnInfo {
|
|
149
|
+
column_name: string;
|
|
150
|
+
data_type: string;
|
|
151
|
+
is_nullable: string;
|
|
152
|
+
column_default?: string;
|
|
153
|
+
table_name: string;
|
|
154
|
+
table_schema: string;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// ============================================
|
|
158
|
+
// Edge Functions Types
|
|
159
|
+
// ============================================
|
|
160
|
+
|
|
161
|
+
export interface EdgeFunction {
|
|
162
|
+
id: string;
|
|
163
|
+
slug: string;
|
|
164
|
+
name: string;
|
|
165
|
+
version: number;
|
|
166
|
+
created_at: string;
|
|
167
|
+
updated_at: string;
|
|
168
|
+
status: 'ACTIVE' | 'INACTIVE' | 'THROTTLED';
|
|
169
|
+
verify_jwt: boolean;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// ============================================
|
|
173
|
+
// Project Settings Types
|
|
174
|
+
// ============================================
|
|
175
|
+
|
|
176
|
+
export interface ProjectSettings {
|
|
177
|
+
name: string;
|
|
178
|
+
ref: string;
|
|
179
|
+
organization_id: string;
|
|
180
|
+
cloud_provider: string;
|
|
181
|
+
region: string;
|
|
182
|
+
created_at: string;
|
|
183
|
+
database: {
|
|
184
|
+
host: string;
|
|
185
|
+
version: string;
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// ============================================
|
|
190
|
+
// API Error Types
|
|
191
|
+
// ============================================
|
|
192
|
+
|
|
193
|
+
export interface SupabaseErrorResponse {
|
|
194
|
+
error?: string;
|
|
195
|
+
error_description?: string;
|
|
196
|
+
message?: string;
|
|
197
|
+
msg?: string;
|
|
198
|
+
code?: string;
|
|
199
|
+
hint?: string;
|
|
200
|
+
details?: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export class SupabaseApiError extends Error {
|
|
204
|
+
public readonly statusCode: number;
|
|
205
|
+
public readonly code?: string;
|
|
206
|
+
public readonly hint?: string;
|
|
207
|
+
|
|
208
|
+
constructor(message: string, statusCode: number, code?: string, hint?: string) {
|
|
209
|
+
super(message);
|
|
210
|
+
this.name = 'SupabaseApiError';
|
|
211
|
+
this.statusCode = statusCode;
|
|
212
|
+
this.code = code;
|
|
213
|
+
this.hint = hint;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, rmSync } from 'fs';
|
|
2
|
+
import { homedir } from 'os';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
|
|
5
|
+
const CONNECTOR_NAME = 'connect-supabase';
|
|
6
|
+
const DEFAULT_PROFILE = 'default';
|
|
7
|
+
|
|
8
|
+
export interface ProfileConfig {
|
|
9
|
+
projectUrl?: string;
|
|
10
|
+
serviceRoleKey?: string;
|
|
11
|
+
anonKey?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Store for --profile flag override (set by CLI before commands run)
|
|
15
|
+
let profileOverride: string | undefined;
|
|
16
|
+
|
|
17
|
+
// Config directory: ~/.connect/{connector-name}/
|
|
18
|
+
const CONFIG_DIR = join(homedir(), '.connect', CONNECTOR_NAME);
|
|
19
|
+
const PROFILES_DIR = join(CONFIG_DIR, 'profiles');
|
|
20
|
+
const CURRENT_PROFILE_FILE = join(CONFIG_DIR, 'current_profile');
|
|
21
|
+
|
|
22
|
+
// ============================================
|
|
23
|
+
// Profile Management
|
|
24
|
+
// ============================================
|
|
25
|
+
|
|
26
|
+
export function setProfileOverride(profile: string | undefined): void {
|
|
27
|
+
profileOverride = profile;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function ensureConfigDir(): void {
|
|
31
|
+
if (!existsSync(CONFIG_DIR)) {
|
|
32
|
+
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
33
|
+
}
|
|
34
|
+
if (!existsSync(PROFILES_DIR)) {
|
|
35
|
+
mkdirSync(PROFILES_DIR, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function getProfilePath(profile: string): string {
|
|
40
|
+
return join(PROFILES_DIR, `${profile}.json`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Get the current active profile name
|
|
45
|
+
*/
|
|
46
|
+
export function getCurrentProfile(): string {
|
|
47
|
+
if (profileOverride) {
|
|
48
|
+
return profileOverride;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
ensureConfigDir();
|
|
52
|
+
|
|
53
|
+
if (existsSync(CURRENT_PROFILE_FILE)) {
|
|
54
|
+
try {
|
|
55
|
+
const profile = readFileSync(CURRENT_PROFILE_FILE, 'utf-8').trim();
|
|
56
|
+
if (profile && profileExists(profile)) {
|
|
57
|
+
return profile;
|
|
58
|
+
}
|
|
59
|
+
} catch {
|
|
60
|
+
// Fall through to default
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return DEFAULT_PROFILE;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Set the current active profile
|
|
69
|
+
*/
|
|
70
|
+
export function setCurrentProfile(profile: string): void {
|
|
71
|
+
ensureConfigDir();
|
|
72
|
+
|
|
73
|
+
if (!profileExists(profile) && profile !== DEFAULT_PROFILE) {
|
|
74
|
+
throw new Error(`Profile "${profile}" does not exist`);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
writeFileSync(CURRENT_PROFILE_FILE, profile);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Check if a profile exists
|
|
82
|
+
*/
|
|
83
|
+
export function profileExists(profile: string): boolean {
|
|
84
|
+
return existsSync(getProfilePath(profile));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* List all available profiles
|
|
89
|
+
*/
|
|
90
|
+
export function listProfiles(): string[] {
|
|
91
|
+
ensureConfigDir();
|
|
92
|
+
|
|
93
|
+
if (!existsSync(PROFILES_DIR)) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return readdirSync(PROFILES_DIR)
|
|
98
|
+
.filter(f => f.endsWith('.json'))
|
|
99
|
+
.map(f => f.replace('.json', ''))
|
|
100
|
+
.sort();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Create a new profile
|
|
105
|
+
*/
|
|
106
|
+
export function createProfile(profile: string, config: ProfileConfig = {}): boolean {
|
|
107
|
+
ensureConfigDir();
|
|
108
|
+
|
|
109
|
+
if (profileExists(profile)) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Validate profile name
|
|
114
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(profile)) {
|
|
115
|
+
throw new Error('Profile name can only contain letters, numbers, hyphens, and underscores');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
writeFileSync(getProfilePath(profile), JSON.stringify(config, null, 2));
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Delete a profile
|
|
124
|
+
*/
|
|
125
|
+
export function deleteProfile(profile: string): boolean {
|
|
126
|
+
if (profile === DEFAULT_PROFILE) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!profileExists(profile)) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Switch to default if deleting current profile
|
|
135
|
+
if (getCurrentProfile() === profile) {
|
|
136
|
+
setCurrentProfile(DEFAULT_PROFILE);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
rmSync(getProfilePath(profile));
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Load profile config
|
|
145
|
+
*/
|
|
146
|
+
export function loadProfile(profile?: string): ProfileConfig {
|
|
147
|
+
ensureConfigDir();
|
|
148
|
+
const profileName = profile || getCurrentProfile();
|
|
149
|
+
const profilePath = getProfilePath(profileName);
|
|
150
|
+
|
|
151
|
+
if (!existsSync(profilePath)) {
|
|
152
|
+
return {};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
try {
|
|
156
|
+
return JSON.parse(readFileSync(profilePath, 'utf-8'));
|
|
157
|
+
} catch {
|
|
158
|
+
return {};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Save profile config
|
|
164
|
+
*/
|
|
165
|
+
export function saveProfile(config: ProfileConfig, profile?: string): void {
|
|
166
|
+
ensureConfigDir();
|
|
167
|
+
const profileName = profile || getCurrentProfile();
|
|
168
|
+
writeFileSync(getProfilePath(profileName), JSON.stringify(config, null, 2));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// ============================================
|
|
172
|
+
// Supabase Config Management
|
|
173
|
+
// ============================================
|
|
174
|
+
|
|
175
|
+
export function getProjectUrl(): string | undefined {
|
|
176
|
+
return process.env.SUPABASE_URL || process.env.SUPABASE_PROJECT_URL || loadProfile().projectUrl;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export function setProjectUrl(projectUrl: string): void {
|
|
180
|
+
const config = loadProfile();
|
|
181
|
+
config.projectUrl = projectUrl;
|
|
182
|
+
saveProfile(config);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export function getServiceRoleKey(): string | undefined {
|
|
186
|
+
return process.env.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_SERVICE_KEY || loadProfile().serviceRoleKey;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export function setServiceRoleKey(serviceRoleKey: string): void {
|
|
190
|
+
const config = loadProfile();
|
|
191
|
+
config.serviceRoleKey = serviceRoleKey;
|
|
192
|
+
saveProfile(config);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export function getAnonKey(): string | undefined {
|
|
196
|
+
return process.env.SUPABASE_ANON_KEY || process.env.SUPABASE_KEY || loadProfile().anonKey;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function setAnonKey(anonKey: string): void {
|
|
200
|
+
const config = loadProfile();
|
|
201
|
+
config.anonKey = anonKey;
|
|
202
|
+
saveProfile(config);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// ============================================
|
|
206
|
+
// Utility Functions
|
|
207
|
+
// ============================================
|
|
208
|
+
|
|
209
|
+
export function clearConfig(): void {
|
|
210
|
+
saveProfile({});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export function getConfigDir(): string {
|
|
214
|
+
return CONFIG_DIR;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export function getActiveProfileName(): string {
|
|
218
|
+
return getCurrentProfile();
|
|
219
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"declaration": true,
|
|
10
|
+
"outDir": "./dist",
|
|
11
|
+
"rootDir": "./src",
|
|
12
|
+
"types": ["bun-types"]
|
|
13
|
+
},
|
|
14
|
+
"include": ["src/**/*"],
|
|
15
|
+
"exclude": ["node_modules", "dist", "bin"]
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# API Credentials
|
|
2
|
+
# TODO: Update variable names and instructions for your API
|
|
3
|
+
# Example: PERPLEXITY_API_KEY, OPENAI_API_KEY, etc.
|
|
4
|
+
|
|
5
|
+
CONNECTOR_API_KEY=your-api-key-here
|
|
6
|
+
|
|
7
|
+
# Optional: API secret (if your API requires it)
|
|
8
|
+
# CONNECTOR_API_SECRET=your-api-secret-here
|
|
9
|
+
|
|
10
|
+
# Optional: Custom base URL (if needed)
|
|
11
|
+
# CONNECTOR_BASE_URL=https://api.example.com
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
connect-vercel is a TypeScript connector for Vercel's REST API. It provides a CLI and programmatic interface for managing Vercel deployments, projects, domains, environment variables, and more.
|
|
8
|
+
|
|
9
|
+
## Build & Run Commands
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bun install # Install dependencies
|
|
13
|
+
bun run dev # Run CLI in development
|
|
14
|
+
bun run build # Build for distribution
|
|
15
|
+
bun run typecheck # Type check
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## CLI Commands
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Authentication
|
|
22
|
+
connect-vercel auth login # Set API key
|
|
23
|
+
connect-vercel auth logout # Clear API key
|
|
24
|
+
connect-vercel auth status # Check auth status
|
|
25
|
+
|
|
26
|
+
# Profile management
|
|
27
|
+
connect-vercel profile list # List profiles
|
|
28
|
+
connect-vercel profile use <name> # Switch profile
|
|
29
|
+
connect-vercel profile create <name> # Create profile
|
|
30
|
+
connect-vercel profile delete <name> # Delete profile
|
|
31
|
+
|
|
32
|
+
# User
|
|
33
|
+
connect-vercel user # Get authenticated user info
|
|
34
|
+
|
|
35
|
+
# Teams
|
|
36
|
+
connect-vercel team list # List teams
|
|
37
|
+
connect-vercel team get <id> # Get team details
|
|
38
|
+
connect-vercel team use <id> # Set team ID for requests
|
|
39
|
+
|
|
40
|
+
# Projects
|
|
41
|
+
connect-vercel project list # List projects
|
|
42
|
+
connect-vercel project get <name> # Get project details
|
|
43
|
+
connect-vercel project create <name> # Create project
|
|
44
|
+
connect-vercel project delete <name> # Delete project
|
|
45
|
+
|
|
46
|
+
# Deployments
|
|
47
|
+
connect-vercel deployment list # List deployments
|
|
48
|
+
connect-vercel deployment get <id> # Get deployment details
|
|
49
|
+
connect-vercel deployment cancel <id> # Cancel deployment
|
|
50
|
+
connect-vercel deployment delete <id> # Delete deployment
|
|
51
|
+
connect-vercel deployment logs <id> # Get deployment logs
|
|
52
|
+
|
|
53
|
+
# Domains
|
|
54
|
+
connect-vercel domain list # List domains
|
|
55
|
+
connect-vercel domain get <domain> # Get domain details
|
|
56
|
+
connect-vercel domain add <project> <domain> # Add domain to project
|
|
57
|
+
connect-vercel domain remove <project> <domain> # Remove domain from project
|
|
58
|
+
connect-vercel domain verify <project> <domain> # Verify domain
|
|
59
|
+
|
|
60
|
+
# Environment Variables
|
|
61
|
+
connect-vercel env list <project> # List env vars
|
|
62
|
+
connect-vercel env get <project> <id> # Get env var details
|
|
63
|
+
connect-vercel env create <project> # Create env var
|
|
64
|
+
connect-vercel env delete <project> <id> # Delete env var
|
|
65
|
+
|
|
66
|
+
# Secrets (Legacy)
|
|
67
|
+
connect-vercel secret list # List secrets
|
|
68
|
+
connect-vercel secret get <name> # Get secret details
|
|
69
|
+
connect-vercel secret create <name> # Create secret
|
|
70
|
+
connect-vercel secret delete <name> # Delete secret
|
|
71
|
+
|
|
72
|
+
# Aliases
|
|
73
|
+
connect-vercel alias list # List aliases
|
|
74
|
+
connect-vercel alias get <id> # Get alias details
|
|
75
|
+
connect-vercel alias assign <deployment> <alias> # Assign alias
|
|
76
|
+
connect-vercel alias delete <id> # Delete alias
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Environment Variables
|
|
80
|
+
|
|
81
|
+
| Variable | Description |
|
|
82
|
+
|----------|-------------|
|
|
83
|
+
| `VERCEL_TOKEN` | API token (overrides profile config) |
|
|
84
|
+
| `VERCEL_TEAM_ID` | Team ID (overrides profile config) |
|
|
85
|
+
|
|
86
|
+
## Authentication
|
|
87
|
+
|
|
88
|
+
Uses Bearer token authentication. Get your token from:
|
|
89
|
+
https://vercel.com/account/tokens
|
|
90
|
+
|
|
91
|
+
## Data Storage
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
~/.connect/connect-vercel/
|
|
95
|
+
├── current_profile # Active profile name
|
|
96
|
+
└── profiles/
|
|
97
|
+
├── default.json # Default profile
|
|
98
|
+
└── {name}.json # Named profiles
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Profile JSON structure:
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"apiKey": "vercel_token_xxx",
|
|
105
|
+
"teamId": "team_xxx"
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Code Style
|
|
110
|
+
|
|
111
|
+
- TypeScript with strict mode
|
|
112
|
+
- ESM modules (type: module)
|
|
113
|
+
- Use async/await for all async operations
|
|
114
|
+
- Type annotations required everywhere
|
|
115
|
+
|
|
116
|
+
## Project Structure
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
src/
|
|
120
|
+
├── api/
|
|
121
|
+
│ ├── client.ts # HTTP client with Bearer auth
|
|
122
|
+
│ └── index.ts # Vercel API wrapper
|
|
123
|
+
├── cli/
|
|
124
|
+
│ └── index.ts # CLI commands
|
|
125
|
+
├── types/
|
|
126
|
+
│ └── index.ts # Type definitions
|
|
127
|
+
├── utils/
|
|
128
|
+
│ ├── config.ts # Multi-profile configuration
|
|
129
|
+
│ └── output.ts # CLI output formatting
|
|
130
|
+
└── index.ts # Library exports
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## API Coverage
|
|
134
|
+
|
|
135
|
+
- User: Get authenticated user
|
|
136
|
+
- Teams: List, get, set
|
|
137
|
+
- Projects: List, get, create, update, delete
|
|
138
|
+
- Deployments: List, get, create, cancel, delete, logs
|
|
139
|
+
- Domains: List, get, add, remove, verify, config
|
|
140
|
+
- Environment Variables: List, get, create, update, delete
|
|
141
|
+
- Secrets (Legacy): List, get, create, delete
|
|
142
|
+
- Aliases: List, get, assign, delete
|