@hasna/connectors 0.3.16 → 0.4.1
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 +246 -1
- package/bin/mcp.js +246 -1
- package/bin/serve.js +245 -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-asana/.env.example +11 -0
- package/connectors/connect-asana/CLAUDE.md +128 -0
- package/connectors/connect-asana/README.md +193 -0
- package/connectors/connect-asana/package.json +52 -0
- package/connectors/connect-asana/src/api/client.ts +119 -0
- package/connectors/connect-asana/src/api/index.ts +319 -0
- package/connectors/connect-asana/src/cli/index.ts +731 -0
- package/connectors/connect-asana/src/index.ts +19 -0
- package/connectors/connect-asana/src/types/index.ts +270 -0
- package/connectors/connect-asana/src/utils/config.ts +171 -0
- package/connectors/connect-asana/src/utils/output.ts +119 -0
- package/connectors/connect-asana/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-clickup/.env.example +11 -0
- package/connectors/connect-clickup/CLAUDE.md +128 -0
- package/connectors/connect-clickup/README.md +193 -0
- package/connectors/connect-clickup/package.json +52 -0
- package/connectors/connect-clickup/src/api/client.ts +116 -0
- package/connectors/connect-clickup/src/api/index.ts +400 -0
- package/connectors/connect-clickup/src/cli/index.ts +625 -0
- package/connectors/connect-clickup/src/index.ts +19 -0
- package/connectors/connect-clickup/src/types/index.ts +591 -0
- package/connectors/connect-clickup/src/utils/config.ts +157 -0
- package/connectors/connect-clickup/src/utils/output.ts +119 -0
- package/connectors/connect-clickup/tsconfig.json +16 -0
- package/connectors/connect-confluence/.env.example +11 -0
- package/connectors/connect-confluence/CLAUDE.md +272 -0
- package/connectors/connect-confluence/README.md +193 -0
- package/connectors/connect-confluence/package.json +53 -0
- package/connectors/connect-confluence/scripts/release.ts +179 -0
- package/connectors/connect-confluence/src/api/client.ts +213 -0
- package/connectors/connect-confluence/src/api/example.ts +48 -0
- package/connectors/connect-confluence/src/api/index.ts +51 -0
- package/connectors/connect-confluence/src/cli/index.ts +254 -0
- package/connectors/connect-confluence/src/index.ts +103 -0
- package/connectors/connect-confluence/src/types/index.ts +237 -0
- package/connectors/connect-confluence/src/utils/auth.ts +274 -0
- package/connectors/connect-confluence/src/utils/bulk.ts +212 -0
- package/connectors/connect-confluence/src/utils/config.ts +326 -0
- package/connectors/connect-confluence/src/utils/output.ts +175 -0
- package/connectors/connect-confluence/src/utils/settings.ts +114 -0
- package/connectors/connect-confluence/src/utils/storage.ts +198 -0
- package/connectors/connect-confluence/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-jira/.env.example +11 -0
- package/connectors/connect-jira/CLAUDE.md +128 -0
- package/connectors/connect-jira/README.md +193 -0
- package/connectors/connect-jira/package.json +53 -0
- package/connectors/connect-jira/src/api/client.ts +131 -0
- package/connectors/connect-jira/src/api/index.ts +266 -0
- package/connectors/connect-jira/src/cli/index.ts +653 -0
- package/connectors/connect-jira/src/index.ts +23 -0
- package/connectors/connect-jira/src/types/index.ts +448 -0
- package/connectors/connect-jira/src/utils/config.ts +179 -0
- package/connectors/connect-jira/src/utils/output.ts +119 -0
- package/connectors/connect-jira/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-linear/CLAUDE.md +88 -0
- package/connectors/connect-linear/README.md +201 -0
- package/connectors/connect-linear/package.json +45 -0
- package/connectors/connect-linear/src/api/client.ts +62 -0
- package/connectors/connect-linear/src/api/index.ts +46 -0
- package/connectors/connect-linear/src/api/issues.ts +247 -0
- package/connectors/connect-linear/src/api/projects.ts +179 -0
- package/connectors/connect-linear/src/api/teams.ts +125 -0
- package/connectors/connect-linear/src/api/users.ts +112 -0
- package/connectors/connect-linear/src/cli/index.ts +560 -0
- package/connectors/connect-linear/src/index.ts +27 -0
- package/connectors/connect-linear/src/types/index.ts +275 -0
- package/connectors/connect-linear/src/utils/config.ts +249 -0
- package/connectors/connect-linear/src/utils/output.ts +119 -0
- package/connectors/connect-linear/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-slack/.env.example +7 -0
- package/connectors/connect-slack/CLAUDE.md +69 -0
- package/connectors/connect-slack/README.md +150 -0
- package/connectors/connect-slack/package.json +44 -0
- package/connectors/connect-slack/src/api/channels.ts +112 -0
- package/connectors/connect-slack/src/api/client.ts +97 -0
- package/connectors/connect-slack/src/api/index.ts +42 -0
- package/connectors/connect-slack/src/api/messages.ts +127 -0
- package/connectors/connect-slack/src/api/users.ts +110 -0
- package/connectors/connect-slack/src/cli/index.ts +494 -0
- package/connectors/connect-slack/src/index.ts +21 -0
- package/connectors/connect-slack/src/types/index.ts +263 -0
- package/connectors/connect-slack/src/utils/config.ts +297 -0
- package/connectors/connect-slack/src/utils/output.ts +119 -0
- package/connectors/connect-slack/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-telegram/.env.example +2 -0
- package/connectors/connect-telegram/package.json +49 -0
- package/connectors/connect-todoist/.env.example +11 -0
- package/connectors/connect-todoist/CLAUDE.md +104 -0
- package/connectors/connect-todoist/README.md +193 -0
- package/connectors/connect-todoist/package.json +52 -0
- package/connectors/connect-todoist/src/api/client.ts +117 -0
- package/connectors/connect-todoist/src/api/index.ts +188 -0
- package/connectors/connect-todoist/src/cli/index.ts +990 -0
- package/connectors/connect-todoist/src/index.ts +21 -0
- package/connectors/connect-todoist/src/types/index.ts +240 -0
- package/connectors/connect-todoist/src/utils/config.ts +157 -0
- package/connectors/connect-todoist/src/utils/output.ts +119 -0
- package/connectors/connect-todoist/tsconfig.json +16 -0
- package/connectors/connect-trello/.env.example +11 -0
- package/connectors/connect-trello/CLAUDE.md +128 -0
- package/connectors/connect-trello/README.md +193 -0
- package/connectors/connect-trello/package.json +53 -0
- package/connectors/connect-trello/src/api/client.ts +128 -0
- package/connectors/connect-trello/src/api/index.ts +278 -0
- package/connectors/connect-trello/src/cli/index.ts +737 -0
- package/connectors/connect-trello/src/index.ts +21 -0
- package/connectors/connect-trello/src/types/index.ts +314 -0
- package/connectors/connect-trello/src/utils/config.ts +182 -0
- package/connectors/connect-trello/src/utils/output.ts +119 -0
- package/connectors/connect-trello/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-whatsapp/.env.example +11 -0
- package/connectors/connect-whatsapp/CLAUDE.md +113 -0
- package/connectors/connect-whatsapp/README.md +193 -0
- package/connectors/connect-whatsapp/package.json +53 -0
- package/connectors/connect-whatsapp/src/api/client.ts +133 -0
- package/connectors/connect-whatsapp/src/api/index.ts +365 -0
- package/connectors/connect-whatsapp/src/cli/index.ts +686 -0
- package/connectors/connect-whatsapp/src/index.ts +25 -0
- package/connectors/connect-whatsapp/src/types/index.ts +502 -0
- package/connectors/connect-whatsapp/src/utils/config.ts +179 -0
- package/connectors/connect-whatsapp/src/utils/output.ts +119 -0
- package/connectors/connect-whatsapp/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 +245 -0
- package/package.json +1 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { describe, test, expect } from 'bun:test';
|
|
2
|
+
import { Zendesk } from './index';
|
|
3
|
+
import { TicketsApi } from './tickets';
|
|
4
|
+
import { UsersApi } from './users';
|
|
5
|
+
import { OrganizationsApi } from './organizations';
|
|
6
|
+
import { GroupsApi } from './groups';
|
|
7
|
+
import { TicketFieldsApi } from './ticket-fields';
|
|
8
|
+
import { ViewsApi } from './views';
|
|
9
|
+
import { TriggersApi } from './triggers';
|
|
10
|
+
import { AutomationsApi } from './automations';
|
|
11
|
+
import { SlaPoliciesApi } from './slas';
|
|
12
|
+
import { WebhooksApi } from './webhooks';
|
|
13
|
+
import { MacrosApi } from './macros';
|
|
14
|
+
import { BrandsApi } from './brands';
|
|
15
|
+
|
|
16
|
+
describe('Zendesk', () => {
|
|
17
|
+
const mockConfig = {
|
|
18
|
+
email: 'test@example.com',
|
|
19
|
+
apiToken: 'test-api-token-12345',
|
|
20
|
+
baseUrl: 'https://test.zendesk.com/api/v2',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
describe('constructor', () => {
|
|
24
|
+
test('creates instance with all API modules', () => {
|
|
25
|
+
const zendesk = new Zendesk(mockConfig);
|
|
26
|
+
|
|
27
|
+
// Core APIs
|
|
28
|
+
expect(zendesk.tickets).toBeInstanceOf(TicketsApi);
|
|
29
|
+
expect(zendesk.users).toBeInstanceOf(UsersApi);
|
|
30
|
+
expect(zendesk.organizations).toBeInstanceOf(OrganizationsApi);
|
|
31
|
+
expect(zendesk.groups).toBeInstanceOf(GroupsApi);
|
|
32
|
+
|
|
33
|
+
// Configuration APIs
|
|
34
|
+
expect(zendesk.ticketFields).toBeInstanceOf(TicketFieldsApi);
|
|
35
|
+
expect(zendesk.brands).toBeInstanceOf(BrandsApi);
|
|
36
|
+
|
|
37
|
+
// Business Rules APIs
|
|
38
|
+
expect(zendesk.views).toBeInstanceOf(ViewsApi);
|
|
39
|
+
expect(zendesk.triggers).toBeInstanceOf(TriggersApi);
|
|
40
|
+
expect(zendesk.automations).toBeInstanceOf(AutomationsApi);
|
|
41
|
+
expect(zendesk.slaPolicies).toBeInstanceOf(SlaPoliciesApi);
|
|
42
|
+
expect(zendesk.macros).toBeInstanceOf(MacrosApi);
|
|
43
|
+
|
|
44
|
+
// Integration APIs
|
|
45
|
+
expect(zendesk.webhooks).toBeInstanceOf(WebhooksApi);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
describe('fromEnv', () => {
|
|
50
|
+
test('throws error when environment variables are missing', () => {
|
|
51
|
+
const originalEmail = process.env.ZENDESK_EMAIL;
|
|
52
|
+
const originalToken = process.env.ZENDESK_API_TOKEN;
|
|
53
|
+
|
|
54
|
+
delete process.env.ZENDESK_EMAIL;
|
|
55
|
+
delete process.env.ZENDESK_API_TOKEN;
|
|
56
|
+
|
|
57
|
+
expect(() => Zendesk.fromEnv()).toThrow('ZENDESK_EMAIL and ZENDESK_API_TOKEN environment variables are required');
|
|
58
|
+
|
|
59
|
+
// Restore
|
|
60
|
+
if (originalEmail) process.env.ZENDESK_EMAIL = originalEmail;
|
|
61
|
+
if (originalToken) process.env.ZENDESK_API_TOKEN = originalToken;
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test('creates instance from environment variables', () => {
|
|
65
|
+
const originalEmail = process.env.ZENDESK_EMAIL;
|
|
66
|
+
const originalToken = process.env.ZENDESK_API_TOKEN;
|
|
67
|
+
const originalUrl = process.env.ZENDESK_BASE_URL;
|
|
68
|
+
|
|
69
|
+
process.env.ZENDESK_EMAIL = 'env@example.com';
|
|
70
|
+
process.env.ZENDESK_API_TOKEN = 'env-token-12345';
|
|
71
|
+
process.env.ZENDESK_BASE_URL = 'https://env.zendesk.com/api/v2';
|
|
72
|
+
|
|
73
|
+
const zendesk = Zendesk.fromEnv();
|
|
74
|
+
|
|
75
|
+
expect(zendesk).toBeInstanceOf(Zendesk);
|
|
76
|
+
expect(zendesk.getEmail()).toBe('env@example.com');
|
|
77
|
+
|
|
78
|
+
// Restore
|
|
79
|
+
if (originalEmail) process.env.ZENDESK_EMAIL = originalEmail;
|
|
80
|
+
else delete process.env.ZENDESK_EMAIL;
|
|
81
|
+
if (originalToken) process.env.ZENDESK_API_TOKEN = originalToken;
|
|
82
|
+
else delete process.env.ZENDESK_API_TOKEN;
|
|
83
|
+
if (originalUrl) process.env.ZENDESK_BASE_URL = originalUrl;
|
|
84
|
+
else delete process.env.ZENDESK_BASE_URL;
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
describe('getApiTokenPreview', () => {
|
|
89
|
+
test('returns masked token', () => {
|
|
90
|
+
const zendesk = new Zendesk(mockConfig);
|
|
91
|
+
const preview = zendesk.getApiTokenPreview();
|
|
92
|
+
expect(preview).toBe('test-a...2345');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
describe('getEmail', () => {
|
|
97
|
+
test('returns configured email', () => {
|
|
98
|
+
const zendesk = new Zendesk(mockConfig);
|
|
99
|
+
expect(zendesk.getEmail()).toBe('test@example.com');
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
describe('getClient', () => {
|
|
104
|
+
test('returns the underlying client', () => {
|
|
105
|
+
const zendesk = new Zendesk(mockConfig);
|
|
106
|
+
const client = zendesk.getClient();
|
|
107
|
+
expect(client).toBeDefined();
|
|
108
|
+
expect(client.getEmail()).toBe('test@example.com');
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { ZendeskConfig } from '../types';
|
|
2
|
+
import { ZendeskClient } from './client';
|
|
3
|
+
import { TicketsApi } from './tickets';
|
|
4
|
+
import { UsersApi } from './users';
|
|
5
|
+
import { OrganizationsApi } from './organizations';
|
|
6
|
+
import { GroupsApi } from './groups';
|
|
7
|
+
import { TicketFieldsApi } from './ticket-fields';
|
|
8
|
+
import { ViewsApi } from './views';
|
|
9
|
+
import { TriggersApi } from './triggers';
|
|
10
|
+
import { AutomationsApi } from './automations';
|
|
11
|
+
import { SlaPoliciesApi } from './slas';
|
|
12
|
+
import { WebhooksApi } from './webhooks';
|
|
13
|
+
import { MacrosApi } from './macros';
|
|
14
|
+
import { BrandsApi } from './brands';
|
|
15
|
+
import { BulkApi } from './bulk';
|
|
16
|
+
|
|
17
|
+
export class Zendesk {
|
|
18
|
+
private readonly client: ZendeskClient;
|
|
19
|
+
|
|
20
|
+
// Core APIs
|
|
21
|
+
public readonly tickets: TicketsApi;
|
|
22
|
+
public readonly users: UsersApi;
|
|
23
|
+
public readonly organizations: OrganizationsApi;
|
|
24
|
+
public readonly groups: GroupsApi;
|
|
25
|
+
|
|
26
|
+
// Configuration APIs
|
|
27
|
+
public readonly ticketFields: TicketFieldsApi;
|
|
28
|
+
public readonly brands: BrandsApi;
|
|
29
|
+
|
|
30
|
+
// Business Rules APIs
|
|
31
|
+
public readonly views: ViewsApi;
|
|
32
|
+
public readonly triggers: TriggersApi;
|
|
33
|
+
public readonly automations: AutomationsApi;
|
|
34
|
+
public readonly slaPolicies: SlaPoliciesApi;
|
|
35
|
+
public readonly macros: MacrosApi;
|
|
36
|
+
|
|
37
|
+
// Integration APIs
|
|
38
|
+
public readonly webhooks: WebhooksApi;
|
|
39
|
+
|
|
40
|
+
// Bulk Operations API
|
|
41
|
+
public readonly bulk: BulkApi;
|
|
42
|
+
|
|
43
|
+
constructor(config: ZendeskConfig) {
|
|
44
|
+
this.client = new ZendeskClient(config);
|
|
45
|
+
|
|
46
|
+
// Core APIs
|
|
47
|
+
this.tickets = new TicketsApi(this.client);
|
|
48
|
+
this.users = new UsersApi(this.client);
|
|
49
|
+
this.organizations = new OrganizationsApi(this.client);
|
|
50
|
+
this.groups = new GroupsApi(this.client);
|
|
51
|
+
|
|
52
|
+
// Configuration APIs
|
|
53
|
+
this.ticketFields = new TicketFieldsApi(this.client);
|
|
54
|
+
this.brands = new BrandsApi(this.client);
|
|
55
|
+
|
|
56
|
+
// Business Rules APIs
|
|
57
|
+
this.views = new ViewsApi(this.client);
|
|
58
|
+
this.triggers = new TriggersApi(this.client);
|
|
59
|
+
this.automations = new AutomationsApi(this.client);
|
|
60
|
+
this.slaPolicies = new SlaPoliciesApi(this.client);
|
|
61
|
+
this.macros = new MacrosApi(this.client);
|
|
62
|
+
|
|
63
|
+
// Integration APIs
|
|
64
|
+
this.webhooks = new WebhooksApi(this.client);
|
|
65
|
+
|
|
66
|
+
// Bulk Operations API
|
|
67
|
+
this.bulk = new BulkApi(this.client, this.tickets, this.users, this.ticketFields);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Create a Zendesk client from environment variables
|
|
72
|
+
* Looks for ZENDESK_EMAIL and ZENDESK_API_TOKEN
|
|
73
|
+
*/
|
|
74
|
+
static fromEnv(): Zendesk {
|
|
75
|
+
const email = process.env.ZENDESK_EMAIL;
|
|
76
|
+
const apiToken = process.env.ZENDESK_API_TOKEN;
|
|
77
|
+
const baseUrl = process.env.ZENDESK_BASE_URL;
|
|
78
|
+
|
|
79
|
+
if (!email || !apiToken) {
|
|
80
|
+
throw new Error('ZENDESK_EMAIL and ZENDESK_API_TOKEN environment variables are required');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return new Zendesk({ email, apiToken, baseUrl });
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get a preview of the API token (for debugging)
|
|
88
|
+
*/
|
|
89
|
+
getApiTokenPreview(): string {
|
|
90
|
+
return this.client.getApiTokenPreview();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Get the email address used for authentication
|
|
95
|
+
*/
|
|
96
|
+
getEmail(): string {
|
|
97
|
+
return this.client.getEmail();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get the underlying client for direct API access
|
|
102
|
+
*/
|
|
103
|
+
getClient(): ZendeskClient {
|
|
104
|
+
return this.client;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { ZendeskClient } from './client';
|
|
109
|
+
export { TicketsApi } from './tickets';
|
|
110
|
+
export { UsersApi } from './users';
|
|
111
|
+
export { OrganizationsApi } from './organizations';
|
|
112
|
+
export { GroupsApi } from './groups';
|
|
113
|
+
export { TicketFieldsApi } from './ticket-fields';
|
|
114
|
+
export { ViewsApi } from './views';
|
|
115
|
+
export { TriggersApi } from './triggers';
|
|
116
|
+
export { AutomationsApi } from './automations';
|
|
117
|
+
export { SlaPoliciesApi } from './slas';
|
|
118
|
+
export { WebhooksApi } from './webhooks';
|
|
119
|
+
export { MacrosApi } from './macros';
|
|
120
|
+
export { BrandsApi } from './brands';
|
|
121
|
+
export { BulkApi, FilterParser } from './bulk';
|
|
122
|
+
export type {
|
|
123
|
+
BulkUpdateOptions,
|
|
124
|
+
BulkUpdateResult,
|
|
125
|
+
BulkPreviewResult,
|
|
126
|
+
BulkSchema,
|
|
127
|
+
BulkResourceType,
|
|
128
|
+
ParsedFilter,
|
|
129
|
+
ParsedUpdate,
|
|
130
|
+
FieldSchema,
|
|
131
|
+
} from './bulk';
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { ZendeskClient } from './client';
|
|
2
|
+
import type {
|
|
3
|
+
ZendeskMacro,
|
|
4
|
+
ZendeskMacroResponse,
|
|
5
|
+
ZendeskMacrosResponse,
|
|
6
|
+
CreateMacroRequest,
|
|
7
|
+
UpdateMacroRequest,
|
|
8
|
+
MacroListParams,
|
|
9
|
+
} from '../types';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Zendesk Macros API
|
|
13
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/
|
|
14
|
+
*/
|
|
15
|
+
export class MacrosApi {
|
|
16
|
+
constructor(private readonly client: ZendeskClient) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* List all macros
|
|
20
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#list-macros
|
|
21
|
+
*/
|
|
22
|
+
async list(params?: MacroListParams): Promise<ZendeskMacro[]> {
|
|
23
|
+
const response = await this.client.get<ZendeskMacrosResponse>('/macros.json', {
|
|
24
|
+
page: params?.page,
|
|
25
|
+
per_page: params?.per_page,
|
|
26
|
+
active: params?.active,
|
|
27
|
+
category: params?.category,
|
|
28
|
+
group_id: params?.group_id,
|
|
29
|
+
sort_by: params?.sort_by,
|
|
30
|
+
sort_order: params?.sort_order,
|
|
31
|
+
});
|
|
32
|
+
return response.macros;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* List active macros
|
|
37
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#list-active-macros
|
|
38
|
+
*/
|
|
39
|
+
async listActive(params?: MacroListParams): Promise<ZendeskMacro[]> {
|
|
40
|
+
const response = await this.client.get<ZendeskMacrosResponse>('/macros/active.json', {
|
|
41
|
+
page: params?.page,
|
|
42
|
+
per_page: params?.per_page,
|
|
43
|
+
category: params?.category,
|
|
44
|
+
group_id: params?.group_id,
|
|
45
|
+
sort_by: params?.sort_by,
|
|
46
|
+
sort_order: params?.sort_order,
|
|
47
|
+
});
|
|
48
|
+
return response.macros;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Get a macro by ID
|
|
53
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#show-macro
|
|
54
|
+
*/
|
|
55
|
+
async get(macroId: number): Promise<ZendeskMacro> {
|
|
56
|
+
const response = await this.client.get<ZendeskMacroResponse>(`/macros/${macroId}.json`);
|
|
57
|
+
return response.macro;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Create a new macro
|
|
62
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#create-macro
|
|
63
|
+
*/
|
|
64
|
+
async create(data: CreateMacroRequest): Promise<ZendeskMacro> {
|
|
65
|
+
const response = await this.client.post<ZendeskMacroResponse>('/macros.json', data);
|
|
66
|
+
return response.macro;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Update a macro
|
|
71
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#update-macro
|
|
72
|
+
*/
|
|
73
|
+
async update(macroId: number, data: UpdateMacroRequest): Promise<ZendeskMacro> {
|
|
74
|
+
const response = await this.client.put<ZendeskMacroResponse>(`/macros/${macroId}.json`, data);
|
|
75
|
+
return response.macro;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Delete a macro
|
|
80
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#delete-macro
|
|
81
|
+
*/
|
|
82
|
+
async delete(macroId: number): Promise<void> {
|
|
83
|
+
await this.client.delete(`/macros/${macroId}.json`);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Apply a macro to a ticket (preview)
|
|
88
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#show-changes-to-ticket
|
|
89
|
+
*/
|
|
90
|
+
async apply(macroId: number, ticketId: number): Promise<{ result: { ticket: unknown; comment: unknown } }> {
|
|
91
|
+
return this.client.get(`/macros/${macroId}/apply.json`, { ticket_id: ticketId });
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Search macros by title
|
|
96
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#search-macros
|
|
97
|
+
*/
|
|
98
|
+
async search(query: string, params?: MacroListParams): Promise<ZendeskMacro[]> {
|
|
99
|
+
const response = await this.client.get<ZendeskMacrosResponse>('/macros/search.json', {
|
|
100
|
+
query,
|
|
101
|
+
page: params?.page,
|
|
102
|
+
per_page: params?.per_page,
|
|
103
|
+
active: params?.active,
|
|
104
|
+
});
|
|
105
|
+
return response.macros;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* List macro categories
|
|
110
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#list-macro-categories
|
|
111
|
+
*/
|
|
112
|
+
async listCategories(): Promise<{ categories: string[] }> {
|
|
113
|
+
return this.client.get('/macros/categories.json');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* List macros applicable to a ticket
|
|
118
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#list-macros-applicable-to-a-ticket
|
|
119
|
+
*/
|
|
120
|
+
async listApplicable(ticketId: number): Promise<ZendeskMacro[]> {
|
|
121
|
+
const response = await this.client.get<ZendeskMacrosResponse>(`/tickets/${ticketId}/macros.json`);
|
|
122
|
+
return response.macros;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ZendeskClient } from './client';
|
|
2
|
+
import type {
|
|
3
|
+
ZendeskOrganization,
|
|
4
|
+
ZendeskOrganizationResponse,
|
|
5
|
+
ZendeskOrganizationsResponse,
|
|
6
|
+
CreateOrganizationRequest,
|
|
7
|
+
OrganizationListParams,
|
|
8
|
+
} from '../types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Zendesk Organizations API
|
|
12
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/
|
|
13
|
+
*/
|
|
14
|
+
export class OrganizationsApi {
|
|
15
|
+
constructor(private readonly client: ZendeskClient) {}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* List all organizations
|
|
19
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#list-organizations
|
|
20
|
+
*/
|
|
21
|
+
async list(params?: OrganizationListParams): Promise<ZendeskOrganization[]> {
|
|
22
|
+
const response = await this.client.get<ZendeskOrganizationsResponse>('/organizations.json', {
|
|
23
|
+
page: params?.page,
|
|
24
|
+
per_page: params?.per_page,
|
|
25
|
+
});
|
|
26
|
+
return response.organizations;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get an organization by ID
|
|
31
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#show-organization
|
|
32
|
+
*/
|
|
33
|
+
async get(organizationId: number): Promise<ZendeskOrganization> {
|
|
34
|
+
const response = await this.client.get<ZendeskOrganizationResponse>(`/organizations/${organizationId}.json`);
|
|
35
|
+
return response.organization;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Create a new organization
|
|
40
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#create-organization
|
|
41
|
+
*/
|
|
42
|
+
async create(data: CreateOrganizationRequest): Promise<ZendeskOrganization> {
|
|
43
|
+
const response = await this.client.post<ZendeskOrganizationResponse>('/organizations.json', data);
|
|
44
|
+
return response.organization;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Update an organization
|
|
49
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#update-organization
|
|
50
|
+
*/
|
|
51
|
+
async update(organizationId: number, data: Partial<CreateOrganizationRequest>): Promise<ZendeskOrganization> {
|
|
52
|
+
const response = await this.client.put<ZendeskOrganizationResponse>(`/organizations/${organizationId}.json`, data);
|
|
53
|
+
return response.organization;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Delete an organization
|
|
58
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#delete-organization
|
|
59
|
+
*/
|
|
60
|
+
async delete(organizationId: number): Promise<void> {
|
|
61
|
+
await this.client.delete(`/organizations/${organizationId}.json`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Search organizations
|
|
66
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#autocomplete-organizations
|
|
67
|
+
*/
|
|
68
|
+
async search(name: string): Promise<ZendeskOrganization[]> {
|
|
69
|
+
const response = await this.client.get<ZendeskOrganizationsResponse>('/organizations/autocomplete.json', {
|
|
70
|
+
name,
|
|
71
|
+
});
|
|
72
|
+
return response.organizations;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Get organization by external ID
|
|
77
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#show-organization
|
|
78
|
+
*/
|
|
79
|
+
async getByExternalId(externalId: string): Promise<ZendeskOrganization[]> {
|
|
80
|
+
const response = await this.client.get<ZendeskOrganizationsResponse>('/organizations/search.json', {
|
|
81
|
+
external_id: externalId,
|
|
82
|
+
});
|
|
83
|
+
return response.organizations;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ZendeskClient } from './client';
|
|
2
|
+
import type {
|
|
3
|
+
ZendeskSlaPolicy,
|
|
4
|
+
ZendeskSlaPolicyResponse,
|
|
5
|
+
ZendeskSlaPoliciesResponse,
|
|
6
|
+
CreateSlaPolicyRequest,
|
|
7
|
+
UpdateSlaPolicyRequest,
|
|
8
|
+
SlaListParams,
|
|
9
|
+
} from '../types';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Zendesk SLA Policies API
|
|
13
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/
|
|
14
|
+
*/
|
|
15
|
+
export class SlaPoliciesApi {
|
|
16
|
+
constructor(private readonly client: ZendeskClient) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* List all SLA policies
|
|
20
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#list-sla-policies
|
|
21
|
+
*/
|
|
22
|
+
async list(params?: SlaListParams): Promise<ZendeskSlaPolicy[]> {
|
|
23
|
+
const response = await this.client.get<ZendeskSlaPoliciesResponse>('/slas/policies.json', {
|
|
24
|
+
page: params?.page,
|
|
25
|
+
per_page: params?.per_page,
|
|
26
|
+
});
|
|
27
|
+
return response.sla_policies;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get an SLA policy by ID
|
|
32
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#show-sla-policy
|
|
33
|
+
*/
|
|
34
|
+
async get(slaPolicyId: number): Promise<ZendeskSlaPolicy> {
|
|
35
|
+
const response = await this.client.get<ZendeskSlaPolicyResponse>(`/slas/policies/${slaPolicyId}.json`);
|
|
36
|
+
return response.sla_policy;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create a new SLA policy
|
|
41
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#create-sla-policy
|
|
42
|
+
*/
|
|
43
|
+
async create(data: CreateSlaPolicyRequest): Promise<ZendeskSlaPolicy> {
|
|
44
|
+
const response = await this.client.post<ZendeskSlaPolicyResponse>('/slas/policies.json', data);
|
|
45
|
+
return response.sla_policy;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Update an SLA policy
|
|
50
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#update-sla-policy
|
|
51
|
+
*/
|
|
52
|
+
async update(slaPolicyId: number, data: UpdateSlaPolicyRequest): Promise<ZendeskSlaPolicy> {
|
|
53
|
+
const response = await this.client.put<ZendeskSlaPolicyResponse>(`/slas/policies/${slaPolicyId}.json`, data);
|
|
54
|
+
return response.sla_policy;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Delete an SLA policy
|
|
59
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#delete-sla-policy
|
|
60
|
+
*/
|
|
61
|
+
async delete(slaPolicyId: number): Promise<void> {
|
|
62
|
+
await this.client.delete(`/slas/policies/${slaPolicyId}.json`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Reorder SLA policies
|
|
67
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#reorder-sla-policies
|
|
68
|
+
*/
|
|
69
|
+
async reorder(slaPolicyIds: number[]): Promise<void> {
|
|
70
|
+
await this.client.put('/slas/policies/reorder.json', { sla_policy_ids: slaPolicyIds });
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Get SLA policy filter definitions
|
|
75
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/business-rules/sla_policies/#retrieve-supported-filter-definition-items
|
|
76
|
+
*/
|
|
77
|
+
async getFilterDefinitions(): Promise<{ definitions: { conditions_all: unknown[]; conditions_any: unknown[] } }> {
|
|
78
|
+
return this.client.get('/slas/policies/definitions.json');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { ZendeskClient } from './client';
|
|
2
|
+
import type {
|
|
3
|
+
ZendeskTicketField,
|
|
4
|
+
ZendeskTicketFieldResponse,
|
|
5
|
+
ZendeskTicketFieldsResponse,
|
|
6
|
+
CreateTicketFieldRequest,
|
|
7
|
+
UpdateTicketFieldRequest,
|
|
8
|
+
TicketFieldListParams,
|
|
9
|
+
} from '../types';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Zendesk Ticket Fields API
|
|
13
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/
|
|
14
|
+
*/
|
|
15
|
+
export class TicketFieldsApi {
|
|
16
|
+
constructor(private readonly client: ZendeskClient) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* List all ticket fields
|
|
20
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#list-ticket-fields
|
|
21
|
+
*/
|
|
22
|
+
async list(params?: TicketFieldListParams): Promise<ZendeskTicketField[]> {
|
|
23
|
+
const response = await this.client.get<ZendeskTicketFieldsResponse>('/ticket_fields.json', {
|
|
24
|
+
page: params?.page,
|
|
25
|
+
per_page: params?.per_page,
|
|
26
|
+
});
|
|
27
|
+
return response.ticket_fields;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get a ticket field by ID
|
|
32
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#show-ticket-field
|
|
33
|
+
*/
|
|
34
|
+
async get(ticketFieldId: number): Promise<ZendeskTicketField> {
|
|
35
|
+
const response = await this.client.get<ZendeskTicketFieldResponse>(`/ticket_fields/${ticketFieldId}.json`);
|
|
36
|
+
return response.ticket_field;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create a new ticket field
|
|
41
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#create-ticket-field
|
|
42
|
+
*/
|
|
43
|
+
async create(data: CreateTicketFieldRequest): Promise<ZendeskTicketField> {
|
|
44
|
+
const response = await this.client.post<ZendeskTicketFieldResponse>('/ticket_fields.json', data);
|
|
45
|
+
return response.ticket_field;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Update a ticket field
|
|
50
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#update-ticket-field
|
|
51
|
+
*/
|
|
52
|
+
async update(ticketFieldId: number, data: UpdateTicketFieldRequest): Promise<ZendeskTicketField> {
|
|
53
|
+
const response = await this.client.put<ZendeskTicketFieldResponse>(`/ticket_fields/${ticketFieldId}.json`, data);
|
|
54
|
+
return response.ticket_field;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Delete a ticket field
|
|
59
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#delete-ticket-field
|
|
60
|
+
*/
|
|
61
|
+
async delete(ticketFieldId: number): Promise<void> {
|
|
62
|
+
await this.client.delete(`/ticket_fields/${ticketFieldId}.json`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* List ticket field options (for dropdown fields)
|
|
67
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#list-ticket-field-options
|
|
68
|
+
*/
|
|
69
|
+
async listOptions(ticketFieldId: number): Promise<Array<{ id: number; name: string; value: string }>> {
|
|
70
|
+
const response = await this.client.get<{ custom_field_options: Array<{ id: number; name: string; value: string }> }>(
|
|
71
|
+
`/ticket_fields/${ticketFieldId}/options.json`
|
|
72
|
+
);
|
|
73
|
+
return response.custom_field_options;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Create or update a ticket field option
|
|
78
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#create-or-update-ticket-field-option
|
|
79
|
+
*/
|
|
80
|
+
async createOrUpdateOption(
|
|
81
|
+
ticketFieldId: number,
|
|
82
|
+
option: { name: string; value: string }
|
|
83
|
+
): Promise<{ id: number; name: string; value: string }> {
|
|
84
|
+
const response = await this.client.post<{ custom_field_option: { id: number; name: string; value: string } }>(
|
|
85
|
+
`/ticket_fields/${ticketFieldId}/options.json`,
|
|
86
|
+
{ custom_field_option: option }
|
|
87
|
+
);
|
|
88
|
+
return response.custom_field_option;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Delete a ticket field option
|
|
93
|
+
* @see https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_fields/#delete-ticket-field-option
|
|
94
|
+
*/
|
|
95
|
+
async deleteOption(ticketFieldId: number, optionId: number): Promise<void> {
|
|
96
|
+
await this.client.delete(`/ticket_fields/${ticketFieldId}/options/${optionId}.json`);
|
|
97
|
+
}
|
|
98
|
+
}
|