@hasna/connectors 0.0.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/README.md +304 -0
- package/bin/index.js +5281 -0
- package/connectors/connect-anthropic/.env.example +4 -0
- package/connectors/connect-anthropic/.npmrc.example +2 -0
- package/connectors/connect-anthropic/AGENTS.md +97 -0
- package/connectors/connect-anthropic/CLAUDE.md +97 -0
- package/connectors/connect-anthropic/GEMINI.md +97 -0
- package/connectors/connect-anthropic/README.md +106 -0
- package/connectors/connect-anthropic/package.json +60 -0
- package/connectors/connect-anthropic/src/api/client.ts +122 -0
- package/connectors/connect-anthropic/src/api/index.ts +51 -0
- package/connectors/connect-anthropic/src/api/messages.ts +109 -0
- package/connectors/connect-anthropic/src/cli/index.ts +336 -0
- package/connectors/connect-anthropic/src/index.ts +24 -0
- package/connectors/connect-anthropic/src/types/index.ts +198 -0
- package/connectors/connect-anthropic/src/utils/config.ts +208 -0
- package/connectors/connect-anthropic/src/utils/output.ts +119 -0
- package/connectors/connect-anthropic/tsconfig.json +16 -0
- package/connectors/connect-aws/.env.example +11 -0
- package/connectors/connect-aws/.npmrc.example +2 -0
- package/connectors/connect-aws/AGENTS.md +145 -0
- package/connectors/connect-aws/CLAUDE.md +145 -0
- package/connectors/connect-aws/GEMINI.md +145 -0
- package/connectors/connect-aws/README.md +131 -0
- package/connectors/connect-aws/package.json +51 -0
- package/connectors/connect-aws/src/api/client.ts +349 -0
- package/connectors/connect-aws/src/api/dynamodb.ts +542 -0
- package/connectors/connect-aws/src/api/index.ts +71 -0
- package/connectors/connect-aws/src/api/lambda.ts +326 -0
- package/connectors/connect-aws/src/api/s3.ts +305 -0
- package/connectors/connect-aws/src/cli/index.ts +614 -0
- package/connectors/connect-aws/src/index.ts +28 -0
- package/connectors/connect-aws/src/types/index.ts +276 -0
- package/connectors/connect-aws/src/utils/config.ts +230 -0
- package/connectors/connect-aws/src/utils/output.ts +119 -0
- package/connectors/connect-aws/tsconfig.json +16 -0
- package/connectors/connect-brandsight/.env.example +8 -0
- package/connectors/connect-brandsight/.npmrc.example +2 -0
- package/connectors/connect-brandsight/AGENTS.md +128 -0
- package/connectors/connect-brandsight/CLAUDE.md +128 -0
- package/connectors/connect-brandsight/GEMINI.md +128 -0
- package/connectors/connect-brandsight/README.md +129 -0
- package/connectors/connect-brandsight/package.json +56 -0
- package/connectors/connect-brandsight/src/api/client.ts +171 -0
- package/connectors/connect-brandsight/src/api/domains.ts +387 -0
- package/connectors/connect-brandsight/src/api/example.ts +59 -0
- package/connectors/connect-brandsight/src/api/index.ts +50 -0
- package/connectors/connect-brandsight/src/cli/index.ts +775 -0
- package/connectors/connect-brandsight/src/index.ts +11 -0
- package/connectors/connect-brandsight/src/types/index.ts +197 -0
- package/connectors/connect-brandsight/src/utils/config.ts +244 -0
- package/connectors/connect-brandsight/src/utils/contacts.ts +204 -0
- package/connectors/connect-brandsight/src/utils/output.ts +119 -0
- package/connectors/connect-brandsight/tsconfig.json +29 -0
- package/connectors/connect-browseruse/.env.example +7 -0
- package/connectors/connect-browseruse/.npmrc.example +2 -0
- package/connectors/connect-browseruse/AGENTS.md +172 -0
- package/connectors/connect-browseruse/CLAUDE.md +172 -0
- package/connectors/connect-browseruse/GEMINI.md +172 -0
- package/connectors/connect-browseruse/README.md +153 -0
- package/connectors/connect-browseruse/package.json +52 -0
- package/connectors/connect-browseruse/src/api/billing.ts +32 -0
- package/connectors/connect-browseruse/src/api/browsers.ts +50 -0
- package/connectors/connect-browseruse/src/api/client.ts +168 -0
- package/connectors/connect-browseruse/src/api/files.ts +70 -0
- package/connectors/connect-browseruse/src/api/index.ts +95 -0
- package/connectors/connect-browseruse/src/api/profiles.ts +59 -0
- package/connectors/connect-browseruse/src/api/sessions.ts +88 -0
- package/connectors/connect-browseruse/src/api/skills.ts +194 -0
- package/connectors/connect-browseruse/src/api/tasks.ts +127 -0
- package/connectors/connect-browseruse/src/cli/index.ts +888 -0
- package/connectors/connect-browseruse/src/index.ts +35 -0
- package/connectors/connect-browseruse/src/types/index.ts +312 -0
- package/connectors/connect-browseruse/src/utils/config.ts +212 -0
- package/connectors/connect-browseruse/src/utils/output.ts +119 -0
- package/connectors/connect-browseruse/tsconfig.json +16 -0
- package/connectors/connect-cloudflare/.env.example +10 -0
- package/connectors/connect-cloudflare/.npmrc.example +2 -0
- package/connectors/connect-cloudflare/AGENTS.md +84 -0
- package/connectors/connect-cloudflare/CLAUDE.md +84 -0
- package/connectors/connect-cloudflare/GEMINI.md +84 -0
- package/connectors/connect-cloudflare/README.md +94 -0
- package/connectors/connect-cloudflare/package.json +59 -0
- package/connectors/connect-cloudflare/scripts/init.sh +62 -0
- package/connectors/connect-cloudflare/src/api/accounts.ts +352 -0
- package/connectors/connect-cloudflare/src/api/analytics.ts +638 -0
- package/connectors/connect-cloudflare/src/api/bulk.ts +1104 -0
- package/connectors/connect-cloudflare/src/api/cache.ts +192 -0
- package/connectors/connect-cloudflare/src/api/client.ts +201 -0
- package/connectors/connect-cloudflare/src/api/dns.ts +109 -0
- package/connectors/connect-cloudflare/src/api/firewall.ts +405 -0
- package/connectors/connect-cloudflare/src/api/index.ts +150 -0
- package/connectors/connect-cloudflare/src/api/kv.ts +171 -0
- package/connectors/connect-cloudflare/src/api/pages.ts +241 -0
- package/connectors/connect-cloudflare/src/api/r2.ts +270 -0
- package/connectors/connect-cloudflare/src/api/ssl.ts +416 -0
- package/connectors/connect-cloudflare/src/api/workers.ts +235 -0
- package/connectors/connect-cloudflare/src/api/zones.ts +121 -0
- package/connectors/connect-cloudflare/src/cli/index.ts +1644 -0
- package/connectors/connect-cloudflare/src/index.ts +21 -0
- package/connectors/connect-cloudflare/src/types/index.ts +754 -0
- package/connectors/connect-cloudflare/src/utils/config.ts +365 -0
- package/connectors/connect-cloudflare/src/utils/output.ts +119 -0
- package/connectors/connect-cloudflare/tsconfig.json +29 -0
- package/connectors/connect-discord/.env.example +9 -0
- package/connectors/connect-discord/.npmrc.example +2 -0
- package/connectors/connect-discord/AGENTS.md +187 -0
- package/connectors/connect-discord/CLAUDE.md +187 -0
- package/connectors/connect-discord/GEMINI.md +187 -0
- package/connectors/connect-discord/README.md +158 -0
- package/connectors/connect-discord/package.json +55 -0
- package/connectors/connect-discord/src/api/channels.ts +451 -0
- package/connectors/connect-discord/src/api/client.ts +147 -0
- package/connectors/connect-discord/src/api/commands.ts +212 -0
- package/connectors/connect-discord/src/api/gateway.ts +27 -0
- package/connectors/connect-discord/src/api/guilds.ts +434 -0
- package/connectors/connect-discord/src/api/index.ts +82 -0
- package/connectors/connect-discord/src/api/invites.ts +27 -0
- package/connectors/connect-discord/src/api/users.ts +66 -0
- package/connectors/connect-discord/src/api/webhooks.ts +188 -0
- package/connectors/connect-discord/src/cli/index.ts +788 -0
- package/connectors/connect-discord/src/index.ts +35 -0
- package/connectors/connect-discord/src/types/index.ts +545 -0
- package/connectors/connect-discord/src/utils/config.ts +219 -0
- package/connectors/connect-discord/src/utils/output.ts +119 -0
- package/connectors/connect-discord/tsconfig.json +16 -0
- package/connectors/connect-docker/.env.example +11 -0
- package/connectors/connect-docker/.npmrc.example +2 -0
- package/connectors/connect-docker/AGENTS.md +112 -0
- package/connectors/connect-docker/CLAUDE.md +112 -0
- package/connectors/connect-docker/GEMINI.md +112 -0
- package/connectors/connect-docker/README.md +97 -0
- package/connectors/connect-docker/package.json +57 -0
- package/connectors/connect-docker/src/api/client.ts +181 -0
- package/connectors/connect-docker/src/api/example.ts +79 -0
- package/connectors/connect-docker/src/api/index.ts +63 -0
- package/connectors/connect-docker/src/cli/index.ts +318 -0
- package/connectors/connect-docker/src/index.ts +30 -0
- package/connectors/connect-docker/src/types/index.ts +172 -0
- package/connectors/connect-docker/src/utils/config.ts +238 -0
- package/connectors/connect-docker/src/utils/output.ts +119 -0
- package/connectors/connect-docker/tsconfig.json +16 -0
- package/connectors/connect-e2b/.env.example +7 -0
- package/connectors/connect-e2b/.npmrc.example +2 -0
- package/connectors/connect-e2b/AGENTS.md +126 -0
- package/connectors/connect-e2b/CLAUDE.md +126 -0
- package/connectors/connect-e2b/GEMINI.md +126 -0
- package/connectors/connect-e2b/README.md +135 -0
- package/connectors/connect-e2b/package.json +51 -0
- package/connectors/connect-e2b/src/api/client.ts +150 -0
- package/connectors/connect-e2b/src/api/code.ts +188 -0
- package/connectors/connect-e2b/src/api/filesystem.ts +168 -0
- package/connectors/connect-e2b/src/api/index.ts +131 -0
- package/connectors/connect-e2b/src/api/sandbox.ts +91 -0
- package/connectors/connect-e2b/src/cli/index.ts +481 -0
- package/connectors/connect-e2b/src/index.ts +28 -0
- package/connectors/connect-e2b/src/types/index.ts +136 -0
- package/connectors/connect-e2b/src/utils/config.ts +231 -0
- package/connectors/connect-e2b/src/utils/output.ts +119 -0
- package/connectors/connect-e2b/tsconfig.json +16 -0
- package/connectors/connect-elevenlabs/.env.example +15 -0
- package/connectors/connect-elevenlabs/.npmrc.example +2 -0
- package/connectors/connect-elevenlabs/AGENTS.md +80 -0
- package/connectors/connect-elevenlabs/CLAUDE.md +80 -0
- package/connectors/connect-elevenlabs/GEMINI.md +80 -0
- package/connectors/connect-elevenlabs/README.md +98 -0
- package/connectors/connect-elevenlabs/package.json +57 -0
- package/connectors/connect-elevenlabs/src/api/client.ts +175 -0
- package/connectors/connect-elevenlabs/src/api/history.ts +103 -0
- package/connectors/connect-elevenlabs/src/api/index.ts +101 -0
- package/connectors/connect-elevenlabs/src/api/models.ts +49 -0
- package/connectors/connect-elevenlabs/src/api/sound-effects.ts +62 -0
- package/connectors/connect-elevenlabs/src/api/sts.ts +109 -0
- package/connectors/connect-elevenlabs/src/api/stt.ts +93 -0
- package/connectors/connect-elevenlabs/src/api/tts.ts +175 -0
- package/connectors/connect-elevenlabs/src/api/user.ts +43 -0
- package/connectors/connect-elevenlabs/src/api/voices.ts +169 -0
- package/connectors/connect-elevenlabs/src/cli/index.ts +739 -0
- package/connectors/connect-elevenlabs/src/index.ts +40 -0
- package/connectors/connect-elevenlabs/src/types/index.ts +432 -0
- package/connectors/connect-elevenlabs/src/utils/config.ts +242 -0
- package/connectors/connect-elevenlabs/src/utils/output.ts +119 -0
- package/connectors/connect-elevenlabs/tsconfig.json +16 -0
- package/connectors/connect-exa/.npmrc.example +2 -0
- package/connectors/connect-exa/AGENTS.md +76 -0
- package/connectors/connect-exa/CLAUDE.md +76 -0
- package/connectors/connect-exa/GEMINI.md +76 -0
- package/connectors/connect-exa/README.md +94 -0
- package/connectors/connect-exa/package.json +59 -0
- package/connectors/connect-exa/src/api/answer.ts +150 -0
- package/connectors/connect-exa/src/api/client.ts +171 -0
- package/connectors/connect-exa/src/api/contents.ts +150 -0
- package/connectors/connect-exa/src/api/context.ts +84 -0
- package/connectors/connect-exa/src/api/index.ts +77 -0
- package/connectors/connect-exa/src/api/research.ts +154 -0
- package/connectors/connect-exa/src/api/search.ts +153 -0
- package/connectors/connect-exa/src/api/similar.ts +138 -0
- package/connectors/connect-exa/src/api/team.ts +165 -0
- package/connectors/connect-exa/src/api/websets.ts +228 -0
- package/connectors/connect-exa/src/cli/index.ts +813 -0
- package/connectors/connect-exa/src/index.ts +32 -0
- package/connectors/connect-exa/src/types/index.ts +410 -0
- package/connectors/connect-exa/src/utils/config.ts +336 -0
- package/connectors/connect-exa/src/utils/output.ts +119 -0
- package/connectors/connect-exa/tsconfig.json +21 -0
- package/connectors/connect-figma/.npmrc.example +2 -0
- package/connectors/connect-figma/AGENTS.md +185 -0
- package/connectors/connect-figma/CLAUDE.md +185 -0
- package/connectors/connect-figma/GEMINI.md +185 -0
- package/connectors/connect-figma/README.md +164 -0
- package/connectors/connect-figma/package.json +50 -0
- package/connectors/connect-figma/src/api/client.ts +111 -0
- package/connectors/connect-figma/src/api/comments.ts +114 -0
- package/connectors/connect-figma/src/api/components.ts +82 -0
- package/connectors/connect-figma/src/api/devresources.ts +78 -0
- package/connectors/connect-figma/src/api/files.ts +132 -0
- package/connectors/connect-figma/src/api/index.ts +86 -0
- package/connectors/connect-figma/src/api/projects.ts +36 -0
- package/connectors/connect-figma/src/api/styles.ts +46 -0
- package/connectors/connect-figma/src/api/teams.ts +17 -0
- package/connectors/connect-figma/src/api/users.ts +16 -0
- package/connectors/connect-figma/src/api/variables.ts +73 -0
- package/connectors/connect-figma/src/api/webhooks.ts +97 -0
- package/connectors/connect-figma/src/cli/index.ts +960 -0
- package/connectors/connect-figma/src/index.ts +34 -0
- package/connectors/connect-figma/src/types/index.ts +593 -0
- package/connectors/connect-figma/src/utils/config.ts +197 -0
- package/connectors/connect-figma/src/utils/output.ts +119 -0
- package/connectors/connect-figma/tsconfig.json +16 -0
- package/connectors/connect-firecrawl/.env.example +7 -0
- package/connectors/connect-firecrawl/.npmrc.example +2 -0
- package/connectors/connect-firecrawl/AGENTS.md +104 -0
- package/connectors/connect-firecrawl/CLAUDE.md +104 -0
- package/connectors/connect-firecrawl/GEMINI.md +104 -0
- package/connectors/connect-firecrawl/README.md +95 -0
- package/connectors/connect-firecrawl/package.json +51 -0
- package/connectors/connect-firecrawl/src/api/client.ts +123 -0
- package/connectors/connect-firecrawl/src/api/crawl.ts +93 -0
- package/connectors/connect-firecrawl/src/api/index.ts +61 -0
- package/connectors/connect-firecrawl/src/api/map.ts +51 -0
- package/connectors/connect-firecrawl/src/api/scrape.ts +71 -0
- package/connectors/connect-firecrawl/src/api/search.ts +61 -0
- package/connectors/connect-firecrawl/src/cli/index.ts +432 -0
- package/connectors/connect-firecrawl/src/index.ts +24 -0
- package/connectors/connect-firecrawl/src/types/index.ts +216 -0
- package/connectors/connect-firecrawl/src/utils/config.ts +208 -0
- package/connectors/connect-firecrawl/src/utils/output.ts +119 -0
- package/connectors/connect-firecrawl/tsconfig.json +16 -0
- package/connectors/connect-github/.env.example +11 -0
- package/connectors/connect-github/.npmrc.example +2 -0
- package/connectors/connect-github/AGENTS.md +150 -0
- package/connectors/connect-github/CLAUDE.md +150 -0
- package/connectors/connect-github/GEMINI.md +150 -0
- package/connectors/connect-github/README.md +126 -0
- package/connectors/connect-github/package.json +49 -0
- package/connectors/connect-github/src/api/client.ts +137 -0
- package/connectors/connect-github/src/api/index.ts +62 -0
- package/connectors/connect-github/src/api/issues.ts +186 -0
- package/connectors/connect-github/src/api/pulls.ts +284 -0
- package/connectors/connect-github/src/api/repos.ts +155 -0
- package/connectors/connect-github/src/api/users.ts +139 -0
- package/connectors/connect-github/src/cli/index.ts +732 -0
- package/connectors/connect-github/src/index.ts +24 -0
- package/connectors/connect-github/src/types/index.ts +497 -0
- package/connectors/connect-github/src/utils/config.ts +208 -0
- package/connectors/connect-github/src/utils/output.ts +119 -0
- package/connectors/connect-github/tsconfig.json +16 -0
- package/connectors/connect-gmail/.env.example +8 -0
- package/connectors/connect-gmail/.npmrc.example +2 -0
- package/connectors/connect-gmail/AGENTS.md +79 -0
- package/connectors/connect-gmail/CLAUDE.md +79 -0
- package/connectors/connect-gmail/GEMINI.md +79 -0
- package/connectors/connect-gmail/README.md +97 -0
- package/connectors/connect-gmail/package.json +58 -0
- package/connectors/connect-gmail/src/api/attachments.ts +141 -0
- package/connectors/connect-gmail/src/api/bulk.ts +661 -0
- package/connectors/connect-gmail/src/api/client.ts +131 -0
- package/connectors/connect-gmail/src/api/drafts.ts +198 -0
- package/connectors/connect-gmail/src/api/export.ts +312 -0
- package/connectors/connect-gmail/src/api/filters.ts +127 -0
- package/connectors/connect-gmail/src/api/index.ts +63 -0
- package/connectors/connect-gmail/src/api/labels.ts +123 -0
- package/connectors/connect-gmail/src/api/messages.ts +527 -0
- package/connectors/connect-gmail/src/api/profile.ts +72 -0
- package/connectors/connect-gmail/src/api/threads.ts +85 -0
- package/connectors/connect-gmail/src/cli/index.ts +2143 -0
- package/connectors/connect-gmail/src/index.ts +30 -0
- package/connectors/connect-gmail/src/types/index.ts +202 -0
- package/connectors/connect-gmail/src/utils/auth.ts +247 -0
- package/connectors/connect-gmail/src/utils/config.ts +466 -0
- package/connectors/connect-gmail/src/utils/contacts.ts +147 -0
- package/connectors/connect-gmail/src/utils/markdown.ts +110 -0
- package/connectors/connect-gmail/src/utils/output.ts +119 -0
- package/connectors/connect-gmail/src/utils/settings.ts +87 -0
- package/connectors/connect-gmail/tsconfig.json +16 -0
- package/connectors/connect-google/.env.example +10 -0
- package/connectors/connect-google/.npmrc.example +2 -0
- package/connectors/connect-google/AGENTS.md +76 -0
- package/connectors/connect-google/CLAUDE.md +76 -0
- package/connectors/connect-google/GEMINI.md +76 -0
- package/connectors/connect-google/README.md +94 -0
- package/connectors/connect-google/package.json +60 -0
- package/connectors/connect-google/src/api/calendar.ts +339 -0
- package/connectors/connect-google/src/api/client.ts +201 -0
- package/connectors/connect-google/src/api/docs.ts +372 -0
- package/connectors/connect-google/src/api/drive.ts +370 -0
- package/connectors/connect-google/src/api/gmail.ts +338 -0
- package/connectors/connect-google/src/api/index.ts +66 -0
- package/connectors/connect-google/src/api/sheets.ts +343 -0
- package/connectors/connect-google/src/cli/index.ts +1232 -0
- package/connectors/connect-google/src/index.ts +27 -0
- package/connectors/connect-google/src/types/index.ts +1893 -0
- package/connectors/connect-google/src/utils/config.ts +248 -0
- package/connectors/connect-google/src/utils/output.ts +119 -0
- package/connectors/connect-google/tsconfig.json +21 -0
- package/connectors/connect-googlecalendar/.npmrc.example +2 -0
- package/connectors/connect-googlecalendar/AGENTS.md +117 -0
- package/connectors/connect-googlecalendar/CLAUDE.md +117 -0
- package/connectors/connect-googlecalendar/GEMINI.md +117 -0
- package/connectors/connect-googlecalendar/README.md +97 -0
- package/connectors/connect-googlecalendar/package.json +57 -0
- package/connectors/connect-googlecalendar/src/api/calendars.ts +106 -0
- package/connectors/connect-googlecalendar/src/api/client.ts +266 -0
- package/connectors/connect-googlecalendar/src/api/events.ts +266 -0
- package/connectors/connect-googlecalendar/src/api/index.ts +96 -0
- package/connectors/connect-googlecalendar/src/cli/index.ts +819 -0
- package/connectors/connect-googlecalendar/src/index.ts +30 -0
- package/connectors/connect-googlecalendar/src/types/index.ts +347 -0
- package/connectors/connect-googlecalendar/src/utils/config.ts +251 -0
- package/connectors/connect-googlecalendar/src/utils/output.ts +119 -0
- package/connectors/connect-googlecalendar/tsconfig.json +16 -0
- package/connectors/connect-googlecloud/.env.example +11 -0
- package/connectors/connect-googlecloud/.npmrc.example +2 -0
- package/connectors/connect-googlecloud/AGENTS.md +110 -0
- package/connectors/connect-googlecloud/CLAUDE.md +110 -0
- package/connectors/connect-googlecloud/GEMINI.md +110 -0
- package/connectors/connect-googlecloud/README.md +96 -0
- package/connectors/connect-googlecloud/package.json +56 -0
- package/connectors/connect-googlecloud/src/api/client.ts +208 -0
- package/connectors/connect-googlecloud/src/api/index.ts +53 -0
- package/connectors/connect-googlecloud/src/api/projects.ts +75 -0
- package/connectors/connect-googlecloud/src/cli/index.ts +305 -0
- package/connectors/connect-googlecloud/src/index.ts +28 -0
- package/connectors/connect-googlecloud/src/types/index.ts +100 -0
- package/connectors/connect-googlecloud/src/utils/config.ts +232 -0
- package/connectors/connect-googlecloud/src/utils/output.ts +119 -0
- package/connectors/connect-googlecloud/tsconfig.json +16 -0
- package/connectors/connect-googlecontacts/.npmrc.example +2 -0
- package/connectors/connect-googlecontacts/AGENTS.md +181 -0
- package/connectors/connect-googlecontacts/CLAUDE.md +181 -0
- package/connectors/connect-googlecontacts/GEMINI.md +181 -0
- package/connectors/connect-googlecontacts/README.md +117 -0
- package/connectors/connect-googlecontacts/package.json +56 -0
- package/connectors/connect-googlecontacts/src/api/client.ts +306 -0
- package/connectors/connect-googlecontacts/src/api/contacts.ts +236 -0
- package/connectors/connect-googlecontacts/src/api/index.ts +99 -0
- package/connectors/connect-googlecontacts/src/cli/index.ts +654 -0
- package/connectors/connect-googlecontacts/src/index.ts +34 -0
- package/connectors/connect-googlecontacts/src/types/index.ts +254 -0
- package/connectors/connect-googlecontacts/src/utils/config.ts +337 -0
- package/connectors/connect-googlecontacts/src/utils/output.ts +119 -0
- package/connectors/connect-googlecontacts/tsconfig.json +16 -0
- package/connectors/connect-googledocs/.env.example +11 -0
- package/connectors/connect-googledocs/.npmrc.example +2 -0
- package/connectors/connect-googledocs/AGENTS.md +130 -0
- package/connectors/connect-googledocs/CLAUDE.md +130 -0
- package/connectors/connect-googledocs/GEMINI.md +130 -0
- package/connectors/connect-googledocs/README.md +112 -0
- package/connectors/connect-googledocs/package.json +50 -0
- package/connectors/connect-googledocs/src/api/client.ts +159 -0
- package/connectors/connect-googledocs/src/api/content.ts +219 -0
- package/connectors/connect-googledocs/src/api/documents.ts +52 -0
- package/connectors/connect-googledocs/src/api/index.ts +65 -0
- package/connectors/connect-googledocs/src/api/styles.ts +386 -0
- package/connectors/connect-googledocs/src/cli/index.ts +364 -0
- package/connectors/connect-googledocs/src/index.ts +24 -0
- package/connectors/connect-googledocs/src/types/index.ts +767 -0
- package/connectors/connect-googledocs/src/utils/config.ts +208 -0
- package/connectors/connect-googledocs/src/utils/output.ts +119 -0
- package/connectors/connect-googledocs/tsconfig.json +16 -0
- package/connectors/connect-googledrive/.npmrc.example +2 -0
- package/connectors/connect-googledrive/AGENTS.md +76 -0
- package/connectors/connect-googledrive/CLAUDE.md +76 -0
- package/connectors/connect-googledrive/GEMINI.md +76 -0
- package/connectors/connect-googledrive/README.md +94 -0
- package/connectors/connect-googledrive/package.json +55 -0
- package/connectors/connect-googledrive/src/api/client.ts +216 -0
- package/connectors/connect-googledrive/src/api/drives.ts +186 -0
- package/connectors/connect-googledrive/src/api/files.ts +305 -0
- package/connectors/connect-googledrive/src/api/folders.ts +133 -0
- package/connectors/connect-googledrive/src/api/index.ts +47 -0
- package/connectors/connect-googledrive/src/api/storage.ts +48 -0
- package/connectors/connect-googledrive/src/api/trash.ts +47 -0
- package/connectors/connect-googledrive/src/cli/index.ts +933 -0
- package/connectors/connect-googledrive/src/index.ts +30 -0
- package/connectors/connect-googledrive/src/types/index.ts +378 -0
- package/connectors/connect-googledrive/src/utils/auth.ts +207 -0
- package/connectors/connect-googledrive/src/utils/config.ts +440 -0
- package/connectors/connect-googledrive/src/utils/output.ts +135 -0
- package/connectors/connect-googledrive/tsconfig.json +25 -0
- package/connectors/connect-googlegemini/.env.example +7 -0
- package/connectors/connect-googlegemini/.npmrc.example +2 -0
- package/connectors/connect-googlegemini/AGENTS.md +184 -0
- package/connectors/connect-googlegemini/CLAUDE.md +184 -0
- package/connectors/connect-googlegemini/GEMINI.md +184 -0
- package/connectors/connect-googlegemini/README.md +143 -0
- package/connectors/connect-googlegemini/package.json +55 -0
- package/connectors/connect-googlegemini/src/api/client.ts +219 -0
- package/connectors/connect-googlegemini/src/api/embeddings.ts +142 -0
- package/connectors/connect-googlegemini/src/api/files.ts +152 -0
- package/connectors/connect-googlegemini/src/api/generate.ts +187 -0
- package/connectors/connect-googlegemini/src/api/images.ts +216 -0
- package/connectors/connect-googlegemini/src/api/index.ts +103 -0
- package/connectors/connect-googlegemini/src/api/models.ts +102 -0
- package/connectors/connect-googlegemini/src/api/speech.ts +195 -0
- package/connectors/connect-googlegemini/src/api/video.ts +224 -0
- package/connectors/connect-googlegemini/src/cli/index.ts +702 -0
- package/connectors/connect-googlegemini/src/index.ts +34 -0
- package/connectors/connect-googlegemini/src/types/index.ts +324 -0
- package/connectors/connect-googlegemini/src/utils/config.ts +139 -0
- package/connectors/connect-googlegemini/src/utils/output.ts +169 -0
- package/connectors/connect-googlegemini/tsconfig.json +15 -0
- package/connectors/connect-googlemaps/.npmrc.example +2 -0
- package/connectors/connect-googlemaps/AGENTS.md +143 -0
- package/connectors/connect-googlemaps/CLAUDE.md +143 -0
- package/connectors/connect-googlemaps/GEMINI.md +143 -0
- package/connectors/connect-googlemaps/README.md +152 -0
- package/connectors/connect-googlemaps/package.json +29 -0
- package/connectors/connect-googlemaps/src/api/index.ts +315 -0
- package/connectors/connect-googlemaps/src/cli/index.ts +423 -0
- package/connectors/connect-googlemaps/src/index.ts +3 -0
- package/connectors/connect-googlemaps/src/types/index.ts +268 -0
- package/connectors/connect-googlemaps/src/utils/config.ts +59 -0
- package/connectors/connect-googlemaps/src/utils/output.ts +178 -0
- package/connectors/connect-googlemaps/tsconfig.json +17 -0
- package/connectors/connect-googlesheets/.env.example +15 -0
- package/connectors/connect-googlesheets/.npmrc.example +2 -0
- package/connectors/connect-googlesheets/AGENTS.md +144 -0
- package/connectors/connect-googlesheets/CLAUDE.md +144 -0
- package/connectors/connect-googlesheets/GEMINI.md +144 -0
- package/connectors/connect-googlesheets/README.md +124 -0
- package/connectors/connect-googlesheets/package.json +51 -0
- package/connectors/connect-googlesheets/src/api/client.ts +230 -0
- package/connectors/connect-googlesheets/src/api/index.ts +113 -0
- package/connectors/connect-googlesheets/src/api/sheets.ts +249 -0
- package/connectors/connect-googlesheets/src/api/spreadsheets.ts +150 -0
- package/connectors/connect-googlesheets/src/api/values.ts +209 -0
- package/connectors/connect-googlesheets/src/cli/index.ts +544 -0
- package/connectors/connect-googlesheets/src/index.ts +32 -0
- package/connectors/connect-googlesheets/src/types/index.ts +764 -0
- package/connectors/connect-googlesheets/src/utils/config.ts +289 -0
- package/connectors/connect-googlesheets/src/utils/output.ts +119 -0
- package/connectors/connect-googlesheets/tsconfig.json +16 -0
- package/connectors/connect-googletasks/.env.example +6 -0
- package/connectors/connect-googletasks/.npmrc.example +2 -0
- package/connectors/connect-googletasks/AGENTS.md +122 -0
- package/connectors/connect-googletasks/CLAUDE.md +122 -0
- package/connectors/connect-googletasks/GEMINI.md +122 -0
- package/connectors/connect-googletasks/README.md +131 -0
- package/connectors/connect-googletasks/package.json +50 -0
- package/connectors/connect-googletasks/src/api/index.ts +321 -0
- package/connectors/connect-googletasks/src/cli/index.ts +542 -0
- package/connectors/connect-googletasks/src/index.ts +42 -0
- package/connectors/connect-googletasks/src/types/index.ts +167 -0
- package/connectors/connect-googletasks/src/utils/config.ts +287 -0
- package/connectors/connect-googletasks/src/utils/output.ts +145 -0
- package/connectors/connect-googletasks/tsconfig.json +16 -0
- package/connectors/connect-hedra/.env.example +7 -0
- package/connectors/connect-hedra/.npmrc.example +2 -0
- package/connectors/connect-hedra/AGENTS.md +101 -0
- package/connectors/connect-hedra/CLAUDE.md +101 -0
- package/connectors/connect-hedra/GEMINI.md +101 -0
- package/connectors/connect-hedra/README.md +95 -0
- package/connectors/connect-hedra/package.json +57 -0
- package/connectors/connect-hedra/src/api/characters.ts +44 -0
- package/connectors/connect-hedra/src/api/client.ts +136 -0
- package/connectors/connect-hedra/src/api/index.ts +57 -0
- package/connectors/connect-hedra/src/api/projects.ts +44 -0
- package/connectors/connect-hedra/src/api/voices.ts +23 -0
- package/connectors/connect-hedra/src/cli/index.ts +314 -0
- package/connectors/connect-hedra/src/index.ts +24 -0
- package/connectors/connect-hedra/src/types/index.ts +103 -0
- package/connectors/connect-hedra/src/utils/config.ts +211 -0
- package/connectors/connect-hedra/src/utils/output.ts +119 -0
- package/connectors/connect-hedra/tsconfig.json +16 -0
- package/connectors/connect-heygen/.env.example +11 -0
- package/connectors/connect-heygen/.npmrc.example +2 -0
- package/connectors/connect-heygen/AGENTS.md +102 -0
- package/connectors/connect-heygen/CLAUDE.md +102 -0
- package/connectors/connect-heygen/GEMINI.md +102 -0
- package/connectors/connect-heygen/README.md +96 -0
- package/connectors/connect-heygen/package.json +57 -0
- package/connectors/connect-heygen/src/api/client.ts +134 -0
- package/connectors/connect-heygen/src/api/example.ts +48 -0
- package/connectors/connect-heygen/src/api/index.ts +49 -0
- package/connectors/connect-heygen/src/cli/index.ts +242 -0
- package/connectors/connect-heygen/src/index.ts +24 -0
- package/connectors/connect-heygen/src/types/index.ts +69 -0
- package/connectors/connect-heygen/src/utils/config.ts +209 -0
- package/connectors/connect-heygen/src/utils/output.ts +119 -0
- package/connectors/connect-heygen/tsconfig.json +16 -0
- package/connectors/connect-huggingface/.env.example +10 -0
- package/connectors/connect-huggingface/.npmrc.example +2 -0
- package/connectors/connect-huggingface/AGENTS.md +113 -0
- package/connectors/connect-huggingface/CLAUDE.md +113 -0
- package/connectors/connect-huggingface/GEMINI.md +113 -0
- package/connectors/connect-huggingface/README.md +97 -0
- package/connectors/connect-huggingface/package.json +57 -0
- package/connectors/connect-huggingface/src/api/client.ts +136 -0
- package/connectors/connect-huggingface/src/api/example.ts +48 -0
- package/connectors/connect-huggingface/src/api/index.ts +49 -0
- package/connectors/connect-huggingface/src/cli/index.ts +243 -0
- package/connectors/connect-huggingface/src/index.ts +24 -0
- package/connectors/connect-huggingface/src/types/index.ts +69 -0
- package/connectors/connect-huggingface/src/utils/config.ts +211 -0
- package/connectors/connect-huggingface/src/utils/output.ts +119 -0
- package/connectors/connect-huggingface/tsconfig.json +16 -0
- package/connectors/connect-icons8/.env.example +7 -0
- package/connectors/connect-icons8/.npmrc.example +2 -0
- package/connectors/connect-icons8/AGENTS.md +101 -0
- package/connectors/connect-icons8/CLAUDE.md +101 -0
- package/connectors/connect-icons8/GEMINI.md +101 -0
- package/connectors/connect-icons8/README.md +95 -0
- package/connectors/connect-icons8/package.json +55 -0
- package/connectors/connect-icons8/src/api/client.ts +137 -0
- package/connectors/connect-icons8/src/api/example.ts +64 -0
- package/connectors/connect-icons8/src/api/index.ts +48 -0
- package/connectors/connect-icons8/src/cli/index.ts +286 -0
- package/connectors/connect-icons8/src/index.ts +24 -0
- package/connectors/connect-icons8/src/types/index.ts +114 -0
- package/connectors/connect-icons8/src/utils/config.ts +211 -0
- package/connectors/connect-icons8/src/utils/output.ts +119 -0
- package/connectors/connect-icons8/tsconfig.json +16 -0
- package/connectors/connect-maropost/.env.example +13 -0
- package/connectors/connect-maropost/.npmrc.example +2 -0
- package/connectors/connect-maropost/AGENTS.md +110 -0
- package/connectors/connect-maropost/CLAUDE.md +110 -0
- package/connectors/connect-maropost/GEMINI.md +110 -0
- package/connectors/connect-maropost/README.md +96 -0
- package/connectors/connect-maropost/package.json +51 -0
- package/connectors/connect-maropost/src/api/campaigns.ts +129 -0
- package/connectors/connect-maropost/src/api/client.ts +162 -0
- package/connectors/connect-maropost/src/api/contacts.ts +128 -0
- package/connectors/connect-maropost/src/api/index.ts +91 -0
- package/connectors/connect-maropost/src/api/journeys.ts +60 -0
- package/connectors/connect-maropost/src/api/lists.ts +80 -0
- package/connectors/connect-maropost/src/api/reports.ts +123 -0
- package/connectors/connect-maropost/src/api/transactional.ts +109 -0
- package/connectors/connect-maropost/src/cli/index.ts +958 -0
- package/connectors/connect-maropost/src/index.ts +33 -0
- package/connectors/connect-maropost/src/types/index.ts +340 -0
- package/connectors/connect-maropost/src/utils/config.ts +213 -0
- package/connectors/connect-maropost/src/utils/output.ts +119 -0
- package/connectors/connect-maropost/tsconfig.json +16 -0
- package/connectors/connect-mercury/.env.example +5 -0
- package/connectors/connect-mercury/.npmrc.example +2 -0
- package/connectors/connect-mercury/AGENTS.md +137 -0
- package/connectors/connect-mercury/CLAUDE.md +137 -0
- package/connectors/connect-mercury/GEMINI.md +137 -0
- package/connectors/connect-mercury/README.md +146 -0
- package/connectors/connect-mercury/package.json +60 -0
- package/connectors/connect-mercury/src/api/accounts.ts +79 -0
- package/connectors/connect-mercury/src/api/attachments.ts +24 -0
- package/connectors/connect-mercury/src/api/categories.ts +40 -0
- package/connectors/connect-mercury/src/api/client.ts +134 -0
- package/connectors/connect-mercury/src/api/credit.ts +38 -0
- package/connectors/connect-mercury/src/api/customers.ts +53 -0
- package/connectors/connect-mercury/src/api/events.ts +63 -0
- package/connectors/connect-mercury/src/api/index.ts +97 -0
- package/connectors/connect-mercury/src/api/invoices.ts +102 -0
- package/connectors/connect-mercury/src/api/organization.ts +88 -0
- package/connectors/connect-mercury/src/api/recipients.ts +84 -0
- package/connectors/connect-mercury/src/api/transactions.ts +128 -0
- package/connectors/connect-mercury/src/api/transfers.ts +96 -0
- package/connectors/connect-mercury/src/api/treasury.ts +82 -0
- package/connectors/connect-mercury/src/api/webhooks.ts +90 -0
- package/connectors/connect-mercury/src/cli/index.ts +1263 -0
- package/connectors/connect-mercury/src/index.ts +33 -0
- package/connectors/connect-mercury/src/types/index.ts +505 -0
- package/connectors/connect-mercury/src/utils/config.ts +393 -0
- package/connectors/connect-mercury/src/utils/output.ts +119 -0
- package/connectors/connect-mercury/tsconfig.json +16 -0
- package/connectors/connect-meta/.npmrc.example +2 -0
- package/connectors/connect-meta/AGENTS.md +76 -0
- package/connectors/connect-meta/CLAUDE.md +76 -0
- package/connectors/connect-meta/GEMINI.md +76 -0
- package/connectors/connect-meta/README.md +94 -0
- package/connectors/connect-meta/package.json +61 -0
- package/connectors/connect-meta/src/api/accounts.ts +120 -0
- package/connectors/connect-meta/src/api/ads.ts +274 -0
- package/connectors/connect-meta/src/api/adsets.ts +263 -0
- package/connectors/connect-meta/src/api/audiences.ts +392 -0
- package/connectors/connect-meta/src/api/business.ts +495 -0
- package/connectors/connect-meta/src/api/campaigns.ts +191 -0
- package/connectors/connect-meta/src/api/catalogs.ts +500 -0
- package/connectors/connect-meta/src/api/client.ts +154 -0
- package/connectors/connect-meta/src/api/creatives.ts +357 -0
- package/connectors/connect-meta/src/api/index.ts +100 -0
- package/connectors/connect-meta/src/api/insights.ts +357 -0
- package/connectors/connect-meta/src/api/instagram.ts +449 -0
- package/connectors/connect-meta/src/api/pages.ts +330 -0
- package/connectors/connect-meta/src/api/pixels.ts +408 -0
- package/connectors/connect-meta/src/cli/index.ts +1585 -0
- package/connectors/connect-meta/src/index.ts +44 -0
- package/connectors/connect-meta/src/types/index.ts +1523 -0
- package/connectors/connect-meta/src/utils/config.ts +458 -0
- package/connectors/connect-meta/src/utils/output.ts +152 -0
- package/connectors/connect-meta/tsconfig.json +18 -0
- package/connectors/connect-midjourney/.env.example +13 -0
- package/connectors/connect-midjourney/.npmrc.example +2 -0
- package/connectors/connect-midjourney/AGENTS.md +104 -0
- package/connectors/connect-midjourney/CLAUDE.md +104 -0
- package/connectors/connect-midjourney/GEMINI.md +104 -0
- package/connectors/connect-midjourney/README.md +96 -0
- package/connectors/connect-midjourney/package.json +57 -0
- package/connectors/connect-midjourney/src/api/client.ts +143 -0
- package/connectors/connect-midjourney/src/api/imagine.ts +84 -0
- package/connectors/connect-midjourney/src/api/index.ts +50 -0
- package/connectors/connect-midjourney/src/cli/index.ts +343 -0
- package/connectors/connect-midjourney/src/index.ts +24 -0
- package/connectors/connect-midjourney/src/types/index.ts +98 -0
- package/connectors/connect-midjourney/src/utils/config.ts +219 -0
- package/connectors/connect-midjourney/src/utils/output.ts +119 -0
- package/connectors/connect-midjourney/tsconfig.json +16 -0
- package/connectors/connect-mistral/.env.example +4 -0
- package/connectors/connect-mistral/.npmrc.example +2 -0
- package/connectors/connect-mistral/AGENTS.md +100 -0
- package/connectors/connect-mistral/CLAUDE.md +100 -0
- package/connectors/connect-mistral/GEMINI.md +100 -0
- package/connectors/connect-mistral/README.md +109 -0
- package/connectors/connect-mistral/package.json +60 -0
- package/connectors/connect-mistral/src/api/chat.ts +113 -0
- package/connectors/connect-mistral/src/api/client.ts +122 -0
- package/connectors/connect-mistral/src/api/embeddings.ts +52 -0
- package/connectors/connect-mistral/src/api/index.ts +62 -0
- package/connectors/connect-mistral/src/cli/index.ts +371 -0
- package/connectors/connect-mistral/src/index.ts +24 -0
- package/connectors/connect-mistral/src/types/index.ts +183 -0
- package/connectors/connect-mistral/src/utils/config.ts +208 -0
- package/connectors/connect-mistral/src/utils/output.ts +119 -0
- package/connectors/connect-mistral/tsconfig.json +16 -0
- package/connectors/connect-mixpanel/.env.example +8 -0
- package/connectors/connect-mixpanel/.npmrc.example +2 -0
- package/connectors/connect-mixpanel/AGENTS.md +178 -0
- package/connectors/connect-mixpanel/CLAUDE.md +178 -0
- package/connectors/connect-mixpanel/GEMINI.md +178 -0
- package/connectors/connect-mixpanel/README.md +149 -0
- package/connectors/connect-mixpanel/package.json +54 -0
- package/connectors/connect-mixpanel/src/api/client.ts +352 -0
- package/connectors/connect-mixpanel/src/api/engage.ts +209 -0
- package/connectors/connect-mixpanel/src/api/export.ts +122 -0
- package/connectors/connect-mixpanel/src/api/funnels.ts +136 -0
- package/connectors/connect-mixpanel/src/api/index.ts +97 -0
- package/connectors/connect-mixpanel/src/api/insights.ts +198 -0
- package/connectors/connect-mixpanel/src/api/retention.ts +139 -0
- package/connectors/connect-mixpanel/src/api/track.ts +69 -0
- package/connectors/connect-mixpanel/src/cli/index.ts +678 -0
- package/connectors/connect-mixpanel/src/index.ts +32 -0
- package/connectors/connect-mixpanel/src/types/index.ts +262 -0
- package/connectors/connect-mixpanel/src/utils/config.ts +255 -0
- package/connectors/connect-mixpanel/src/utils/output.ts +119 -0
- package/connectors/connect-mixpanel/tsconfig.json +16 -0
- package/connectors/connect-notion/.env.example +10 -0
- package/connectors/connect-notion/.npmrc.example +2 -0
- package/connectors/connect-notion/AGENTS.md +75 -0
- package/connectors/connect-notion/CLAUDE.md +211 -0
- package/connectors/connect-notion/GEMINI.md +54 -0
- package/connectors/connect-notion/README.md +244 -0
- package/connectors/connect-notion/package.json +56 -0
- package/connectors/connect-notion/src/api/blocks.ts +463 -0
- package/connectors/connect-notion/src/api/bulk.ts +614 -0
- package/connectors/connect-notion/src/api/client.ts +127 -0
- package/connectors/connect-notion/src/api/comments.ts +142 -0
- package/connectors/connect-notion/src/api/databases.ts +652 -0
- package/connectors/connect-notion/src/api/export.ts +487 -0
- package/connectors/connect-notion/src/api/index.ts +72 -0
- package/connectors/connect-notion/src/api/pages.ts +465 -0
- package/connectors/connect-notion/src/api/search.ts +202 -0
- package/connectors/connect-notion/src/api/users.ts +99 -0
- package/connectors/connect-notion/src/cli/index.ts +1666 -0
- package/connectors/connect-notion/src/index.ts +16 -0
- package/connectors/connect-notion/src/types/index.ts +723 -0
- package/connectors/connect-notion/src/utils/auth.ts +186 -0
- package/connectors/connect-notion/src/utils/config.ts +434 -0
- package/connectors/connect-notion/src/utils/output.ts +119 -0
- package/connectors/connect-notion/tsconfig.json +29 -0
- package/connectors/connect-openai/.env.example +4 -0
- package/connectors/connect-openai/.npmrc.example +2 -0
- package/connectors/connect-openai/AGENTS.md +77 -0
- package/connectors/connect-openai/CLAUDE.md +77 -0
- package/connectors/connect-openai/GEMINI.md +77 -0
- package/connectors/connect-openai/README.md +95 -0
- package/connectors/connect-openai/package.json +61 -0
- package/connectors/connect-openai/src/api/chat.ts +134 -0
- package/connectors/connect-openai/src/api/client.ts +128 -0
- package/connectors/connect-openai/src/api/embeddings.ts +57 -0
- package/connectors/connect-openai/src/api/images.ts +75 -0
- package/connectors/connect-openai/src/api/index.ts +67 -0
- package/connectors/connect-openai/src/cli/index.ts +459 -0
- package/connectors/connect-openai/src/index.ts +26 -0
- package/connectors/connect-openai/src/types/index.ts +241 -0
- package/connectors/connect-openai/src/utils/config.ts +219 -0
- package/connectors/connect-openai/src/utils/output.ts +119 -0
- package/connectors/connect-openai/tsconfig.json +16 -0
- package/connectors/connect-openweathermap/.env.example +2 -0
- package/connectors/connect-openweathermap/.npmrc.example +2 -0
- package/connectors/connect-openweathermap/AGENTS.md +106 -0
- package/connectors/connect-openweathermap/CLAUDE.md +106 -0
- package/connectors/connect-openweathermap/GEMINI.md +106 -0
- package/connectors/connect-openweathermap/README.md +115 -0
- package/connectors/connect-openweathermap/package.json +52 -0
- package/connectors/connect-openweathermap/src/api/client.ts +76 -0
- package/connectors/connect-openweathermap/src/api/index.ts +24 -0
- package/connectors/connect-openweathermap/src/api/weather.ts +108 -0
- package/connectors/connect-openweathermap/src/cli/index.ts +470 -0
- package/connectors/connect-openweathermap/src/index.ts +33 -0
- package/connectors/connect-openweathermap/src/types/index.ts +275 -0
- package/connectors/connect-openweathermap/src/utils/config.ts +82 -0
- package/connectors/connect-openweathermap/src/utils/output.ts +106 -0
- package/connectors/connect-openweathermap/tsconfig.json +16 -0
- package/connectors/connect-pandadoc/.env.example +13 -0
- package/connectors/connect-pandadoc/.npmrc.example +2 -0
- package/connectors/connect-pandadoc/AGENTS.md +76 -0
- package/connectors/connect-pandadoc/CLAUDE.md +76 -0
- package/connectors/connect-pandadoc/GEMINI.md +76 -0
- package/connectors/connect-pandadoc/README.md +94 -0
- package/connectors/connect-pandadoc/package.json +57 -0
- package/connectors/connect-pandadoc/src/api/catalogs.ts +58 -0
- package/connectors/connect-pandadoc/src/api/client.ts +169 -0
- package/connectors/connect-pandadoc/src/api/contacts.ts +58 -0
- package/connectors/connect-pandadoc/src/api/content-library.ts +57 -0
- package/connectors/connect-pandadoc/src/api/documents.ts +263 -0
- package/connectors/connect-pandadoc/src/api/folders.ts +58 -0
- package/connectors/connect-pandadoc/src/api/forms.ts +37 -0
- package/connectors/connect-pandadoc/src/api/index.ts +83 -0
- package/connectors/connect-pandadoc/src/api/members.ts +42 -0
- package/connectors/connect-pandadoc/src/api/templates.ts +61 -0
- package/connectors/connect-pandadoc/src/api/webhooks.ts +81 -0
- package/connectors/connect-pandadoc/src/cli/index.ts +1212 -0
- package/connectors/connect-pandadoc/src/index.ts +39 -0
- package/connectors/connect-pandadoc/src/types/index.ts +454 -0
- package/connectors/connect-pandadoc/src/utils/config.ts +259 -0
- package/connectors/connect-pandadoc/src/utils/output.ts +119 -0
- package/connectors/connect-pandadoc/tsconfig.json +16 -0
- package/connectors/connect-quo/.env.example +7 -0
- package/connectors/connect-quo/.npmrc.example +2 -0
- package/connectors/connect-quo/AGENTS.md +76 -0
- package/connectors/connect-quo/CLAUDE.md +76 -0
- package/connectors/connect-quo/GEMINI.md +76 -0
- package/connectors/connect-quo/README.md +94 -0
- package/connectors/connect-quo/package.json +58 -0
- package/connectors/connect-quo/src/api/calls.ts +64 -0
- package/connectors/connect-quo/src/api/client.ts +133 -0
- package/connectors/connect-quo/src/api/contacts.ts +57 -0
- package/connectors/connect-quo/src/api/conversations.ts +45 -0
- package/connectors/connect-quo/src/api/custom-fields.ts +17 -0
- package/connectors/connect-quo/src/api/index.ts +76 -0
- package/connectors/connect-quo/src/api/messages.ts +50 -0
- package/connectors/connect-quo/src/api/phone-numbers.ts +24 -0
- package/connectors/connect-quo/src/api/users.ts +24 -0
- package/connectors/connect-quo/src/api/webhooks.ts +121 -0
- package/connectors/connect-quo/src/cli/index.ts +713 -0
- package/connectors/connect-quo/src/index.ts +32 -0
- package/connectors/connect-quo/src/types/index.ts +361 -0
- package/connectors/connect-quo/src/utils/config.ts +242 -0
- package/connectors/connect-quo/src/utils/output.ts +119 -0
- package/connectors/connect-quo/tsconfig.json +16 -0
- package/connectors/connect-reddit/.npmrc.example +2 -0
- package/connectors/connect-reddit/AGENTS.md +176 -0
- package/connectors/connect-reddit/CLAUDE.md +176 -0
- package/connectors/connect-reddit/GEMINI.md +176 -0
- package/connectors/connect-reddit/README.md +160 -0
- package/connectors/connect-reddit/package.json +50 -0
- package/connectors/connect-reddit/src/api/client.ts +299 -0
- package/connectors/connect-reddit/src/api/comments.ts +268 -0
- package/connectors/connect-reddit/src/api/index.ts +113 -0
- package/connectors/connect-reddit/src/api/posts.ts +298 -0
- package/connectors/connect-reddit/src/api/search.ts +235 -0
- package/connectors/connect-reddit/src/api/subreddits.ts +279 -0
- package/connectors/connect-reddit/src/api/users.ts +403 -0
- package/connectors/connect-reddit/src/cli/index.ts +766 -0
- package/connectors/connect-reddit/src/index.ts +36 -0
- package/connectors/connect-reddit/src/types/index.ts +295 -0
- package/connectors/connect-reddit/src/utils/config.ts +281 -0
- package/connectors/connect-reddit/src/utils/output.ts +138 -0
- package/connectors/connect-reddit/tsconfig.json +16 -0
- package/connectors/connect-reducto/.npmrc.example +2 -0
- package/connectors/connect-reducto/AGENTS.md +136 -0
- package/connectors/connect-reducto/CLAUDE.md +136 -0
- package/connectors/connect-reducto/GEMINI.md +136 -0
- package/connectors/connect-reducto/README.md +145 -0
- package/connectors/connect-reducto/package.json +48 -0
- package/connectors/connect-reducto/src/api/index.ts +362 -0
- package/connectors/connect-reducto/src/cli/index.ts +582 -0
- package/connectors/connect-reducto/src/index.ts +48 -0
- package/connectors/connect-reducto/src/types/index.ts +204 -0
- package/connectors/connect-reducto/src/utils/config.ts +144 -0
- package/connectors/connect-reducto/src/utils/output.ts +256 -0
- package/connectors/connect-reducto/tsconfig.json +18 -0
- package/connectors/connect-resend/.npmrc.example +2 -0
- package/connectors/connect-resend/AGENTS.md +76 -0
- package/connectors/connect-resend/CLAUDE.md +76 -0
- package/connectors/connect-resend/GEMINI.md +76 -0
- package/connectors/connect-resend/README.md +94 -0
- package/connectors/connect-resend/package.json +58 -0
- package/connectors/connect-resend/src/api/api-keys.ts +41 -0
- package/connectors/connect-resend/src/api/audiences.ts +46 -0
- package/connectors/connect-resend/src/api/broadcasts.ts +65 -0
- package/connectors/connect-resend/src/api/client.ts +132 -0
- package/connectors/connect-resend/src/api/contacts.ts +64 -0
- package/connectors/connect-resend/src/api/domains.ts +64 -0
- package/connectors/connect-resend/src/api/emails.ts +66 -0
- package/connectors/connect-resend/src/api/index.ts +77 -0
- package/connectors/connect-resend/src/api/templates.ts +65 -0
- package/connectors/connect-resend/src/api/webhooks.ts +55 -0
- package/connectors/connect-resend/src/cli/index.ts +1029 -0
- package/connectors/connect-resend/src/index.ts +32 -0
- package/connectors/connect-resend/src/types/index.ts +327 -0
- package/connectors/connect-resend/src/utils/config.ts +228 -0
- package/connectors/connect-resend/src/utils/output.ts +119 -0
- package/connectors/connect-resend/tsconfig.json +21 -0
- package/connectors/connect-revolut/.npmrc.example +2 -0
- package/connectors/connect-revolut/AGENTS.md +162 -0
- package/connectors/connect-revolut/CLAUDE.md +162 -0
- package/connectors/connect-revolut/GEMINI.md +162 -0
- package/connectors/connect-revolut/README.md +145 -0
- package/connectors/connect-revolut/package.json +54 -0
- package/connectors/connect-revolut/src/api/accounts.ts +46 -0
- package/connectors/connect-revolut/src/api/cards.ts +87 -0
- package/connectors/connect-revolut/src/api/client.ts +128 -0
- package/connectors/connect-revolut/src/api/counterparties.ts +64 -0
- package/connectors/connect-revolut/src/api/exchange.ts +87 -0
- package/connectors/connect-revolut/src/api/index.ts +85 -0
- package/connectors/connect-revolut/src/api/payments.ts +64 -0
- package/connectors/connect-revolut/src/api/transactions.ts +62 -0
- package/connectors/connect-revolut/src/cli/index.ts +674 -0
- package/connectors/connect-revolut/src/index.ts +32 -0
- package/connectors/connect-revolut/src/types/index.ts +306 -0
- package/connectors/connect-revolut/src/utils/config.ts +212 -0
- package/connectors/connect-revolut/src/utils/output.ts +77 -0
- package/connectors/connect-revolut/tsconfig.json +16 -0
- package/connectors/connect-sedo/.env.example +7 -0
- package/connectors/connect-sedo/.npmrc.example +2 -0
- package/connectors/connect-sedo/AGENTS.md +111 -0
- package/connectors/connect-sedo/CLAUDE.md +111 -0
- package/connectors/connect-sedo/GEMINI.md +111 -0
- package/connectors/connect-sedo/README.md +112 -0
- package/connectors/connect-sedo/package.json +54 -0
- package/connectors/connect-sedo/src/api/client.ts +139 -0
- package/connectors/connect-sedo/src/api/domains.ts +246 -0
- package/connectors/connect-sedo/src/api/index.ts +30 -0
- package/connectors/connect-sedo/src/cli/index.ts +490 -0
- package/connectors/connect-sedo/src/index.ts +18 -0
- package/connectors/connect-sedo/src/types/index.ts +104 -0
- package/connectors/connect-sedo/src/utils/config.ts +234 -0
- package/connectors/connect-sedo/src/utils/output.ts +62 -0
- package/connectors/connect-sedo/tsconfig.json +29 -0
- package/connectors/connect-sentry/.env.example +10 -0
- package/connectors/connect-sentry/.npmrc.example +2 -0
- package/connectors/connect-sentry/AGENTS.md +102 -0
- package/connectors/connect-sentry/CLAUDE.md +102 -0
- package/connectors/connect-sentry/GEMINI.md +102 -0
- package/connectors/connect-sentry/README.md +96 -0
- package/connectors/connect-sentry/package.json +55 -0
- package/connectors/connect-sentry/src/api/client.ts +136 -0
- package/connectors/connect-sentry/src/api/example.ts +48 -0
- package/connectors/connect-sentry/src/api/index.ts +49 -0
- package/connectors/connect-sentry/src/cli/index.ts +242 -0
- package/connectors/connect-sentry/src/index.ts +24 -0
- package/connectors/connect-sentry/src/types/index.ts +69 -0
- package/connectors/connect-sentry/src/utils/config.ts +210 -0
- package/connectors/connect-sentry/src/utils/output.ts +119 -0
- package/connectors/connect-sentry/tsconfig.json +16 -0
- package/connectors/connect-shadcn/.env.example +5 -0
- package/connectors/connect-shadcn/.npmrc.example +2 -0
- package/connectors/connect-shadcn/AGENTS.md +104 -0
- package/connectors/connect-shadcn/CLAUDE.md +104 -0
- package/connectors/connect-shadcn/GEMINI.md +104 -0
- package/connectors/connect-shadcn/README.md +94 -0
- package/connectors/connect-shadcn/package.json +55 -0
- package/connectors/connect-shadcn/src/api/client.ts +91 -0
- package/connectors/connect-shadcn/src/api/components.ts +146 -0
- package/connectors/connect-shadcn/src/api/index.ts +50 -0
- package/connectors/connect-shadcn/src/cli/index.ts +320 -0
- package/connectors/connect-shadcn/src/index.ts +22 -0
- package/connectors/connect-shadcn/src/types/index.ts +89 -0
- package/connectors/connect-shadcn/src/utils/config.ts +208 -0
- package/connectors/connect-shadcn/src/utils/output.ts +119 -0
- package/connectors/connect-shadcn/tsconfig.json +16 -0
- package/connectors/connect-shopify/.npmrc.example +2 -0
- package/connectors/connect-shopify/AGENTS.md +170 -0
- package/connectors/connect-shopify/CLAUDE.md +170 -0
- package/connectors/connect-shopify/GEMINI.md +170 -0
- package/connectors/connect-shopify/README.md +153 -0
- package/connectors/connect-shopify/package.json +29 -0
- package/connectors/connect-shopify/src/api/client.ts +163 -0
- package/connectors/connect-shopify/src/api/collections.ts +322 -0
- package/connectors/connect-shopify/src/api/customers.ts +239 -0
- package/connectors/connect-shopify/src/api/index.ts +89 -0
- package/connectors/connect-shopify/src/api/inventory.ts +236 -0
- package/connectors/connect-shopify/src/api/orders.ts +367 -0
- package/connectors/connect-shopify/src/api/products.ts +252 -0
- package/connectors/connect-shopify/src/api/shop.ts +50 -0
- package/connectors/connect-shopify/src/cli/index.ts +870 -0
- package/connectors/connect-shopify/src/index.ts +35 -0
- package/connectors/connect-shopify/src/types/index.ts +262 -0
- package/connectors/connect-shopify/src/utils/config.ts +240 -0
- package/connectors/connect-shopify/src/utils/output.ts +119 -0
- package/connectors/connect-shopify/tsconfig.json +17 -0
- package/connectors/connect-snap/.npmrc.example +2 -0
- package/connectors/connect-snap/AGENTS.md +76 -0
- package/connectors/connect-snap/CLAUDE.md +76 -0
- package/connectors/connect-snap/GEMINI.md +76 -0
- package/connectors/connect-snap/README.md +94 -0
- package/connectors/connect-snap/package.json +62 -0
- package/connectors/connect-snap/src/api/accounts.ts +81 -0
- package/connectors/connect-snap/src/api/ads.ts +102 -0
- package/connectors/connect-snap/src/api/adsquads.ts +130 -0
- package/connectors/connect-snap/src/api/audiences.ts +208 -0
- package/connectors/connect-snap/src/api/campaigns.ts +92 -0
- package/connectors/connect-snap/src/api/catalogs.ts +313 -0
- package/connectors/connect-snap/src/api/client.ts +324 -0
- package/connectors/connect-snap/src/api/conversions.ts +403 -0
- package/connectors/connect-snap/src/api/creatives.ts +232 -0
- package/connectors/connect-snap/src/api/index.ts +124 -0
- package/connectors/connect-snap/src/api/leads.ts +299 -0
- package/connectors/connect-snap/src/api/media.ts +246 -0
- package/connectors/connect-snap/src/api/organizations.ts +30 -0
- package/connectors/connect-snap/src/api/pixels.ts +215 -0
- package/connectors/connect-snap/src/api/stats.ts +305 -0
- package/connectors/connect-snap/src/api/targeting.ts +255 -0
- package/connectors/connect-snap/src/cli/index.ts +1810 -0
- package/connectors/connect-snap/src/index.ts +52 -0
- package/connectors/connect-snap/src/types/index.ts +1226 -0
- package/connectors/connect-snap/src/utils/config.ts +509 -0
- package/connectors/connect-snap/src/utils/output.ts +139 -0
- package/connectors/connect-snap/tsconfig.json +16 -0
- package/connectors/connect-stabilityai/.npmrc.example +2 -0
- package/connectors/connect-stabilityai/AGENTS.md +76 -0
- package/connectors/connect-stabilityai/CLAUDE.md +76 -0
- package/connectors/connect-stabilityai/GEMINI.md +76 -0
- package/connectors/connect-stabilityai/README.md +94 -0
- package/connectors/connect-stabilityai/package.json +63 -0
- package/connectors/connect-stabilityai/src/api/3d.ts +99 -0
- package/connectors/connect-stabilityai/src/api/client.ts +238 -0
- package/connectors/connect-stabilityai/src/api/edit.ts +130 -0
- package/connectors/connect-stabilityai/src/api/engines.ts +41 -0
- package/connectors/connect-stabilityai/src/api/image-to-image.ts +150 -0
- package/connectors/connect-stabilityai/src/api/index.ts +81 -0
- package/connectors/connect-stabilityai/src/api/inpaint.ts +153 -0
- package/connectors/connect-stabilityai/src/api/outpaint.ts +117 -0
- package/connectors/connect-stabilityai/src/api/text-to-image.ts +181 -0
- package/connectors/connect-stabilityai/src/api/upscale.ts +113 -0
- package/connectors/connect-stabilityai/src/api/user.ts +24 -0
- package/connectors/connect-stabilityai/src/cli/index.ts +859 -0
- package/connectors/connect-stabilityai/src/index.ts +37 -0
- package/connectors/connect-stabilityai/src/types/index.ts +315 -0
- package/connectors/connect-stabilityai/src/utils/config.ts +340 -0
- package/connectors/connect-stabilityai/src/utils/output.ts +119 -0
- package/connectors/connect-stabilityai/tsconfig.json +21 -0
- package/connectors/connect-stripe/.env.example +10 -0
- package/connectors/connect-stripe/.npmrc.example +2 -0
- package/connectors/connect-stripe/AGENTS.md +204 -0
- package/connectors/connect-stripe/CLAUDE.md +204 -0
- package/connectors/connect-stripe/GEMINI.md +204 -0
- package/connectors/connect-stripe/README.md +181 -0
- package/connectors/connect-stripe/package.json +55 -0
- package/connectors/connect-stripe/src/api/balance.ts +28 -0
- package/connectors/connect-stripe/src/api/billing-portal.ts +64 -0
- package/connectors/connect-stripe/src/api/charges.ts +65 -0
- package/connectors/connect-stripe/src/api/checkout-sessions.ts +55 -0
- package/connectors/connect-stripe/src/api/client.ts +190 -0
- package/connectors/connect-stripe/src/api/coupons.ts +52 -0
- package/connectors/connect-stripe/src/api/customers.ts +65 -0
- package/connectors/connect-stripe/src/api/events.ts +28 -0
- package/connectors/connect-stripe/src/api/index.ts +118 -0
- package/connectors/connect-stripe/src/api/invoice-items.ts +52 -0
- package/connectors/connect-stripe/src/api/invoices.ts +102 -0
- package/connectors/connect-stripe/src/api/payment-intents.ts +81 -0
- package/connectors/connect-stripe/src/api/payment-links.ts +57 -0
- package/connectors/connect-stripe/src/api/payment-methods.ts +59 -0
- package/connectors/connect-stripe/src/api/prices.ts +57 -0
- package/connectors/connect-stripe/src/api/products.ts +65 -0
- package/connectors/connect-stripe/src/api/promotion-codes.ts +44 -0
- package/connectors/connect-stripe/src/api/subscription-items.ts +53 -0
- package/connectors/connect-stripe/src/api/subscriptions.ts +73 -0
- package/connectors/connect-stripe/src/api/webhooks.ts +52 -0
- package/connectors/connect-stripe/src/cli/index.ts +1995 -0
- package/connectors/connect-stripe/src/index.ts +44 -0
- package/connectors/connect-stripe/src/types/index.ts +2147 -0
- package/connectors/connect-stripe/src/utils/config.ts +220 -0
- package/connectors/connect-stripe/src/utils/output.ts +119 -0
- package/connectors/connect-stripe/tsconfig.json +16 -0
- package/connectors/connect-stripeatlas/.env.example +11 -0
- package/connectors/connect-stripeatlas/.npmrc.example +2 -0
- package/connectors/connect-stripeatlas/AGENTS.md +102 -0
- package/connectors/connect-stripeatlas/CLAUDE.md +102 -0
- package/connectors/connect-stripeatlas/GEMINI.md +102 -0
- package/connectors/connect-stripeatlas/README.md +95 -0
- package/connectors/connect-stripeatlas/package.json +57 -0
- package/connectors/connect-stripeatlas/src/api/client.ts +77 -0
- package/connectors/connect-stripeatlas/src/api/example.ts +60 -0
- package/connectors/connect-stripeatlas/src/api/index.ts +65 -0
- package/connectors/connect-stripeatlas/src/cli/index.ts +270 -0
- package/connectors/connect-stripeatlas/src/index.ts +29 -0
- package/connectors/connect-stripeatlas/src/types/index.ts +93 -0
- package/connectors/connect-stripeatlas/src/utils/config.ts +228 -0
- package/connectors/connect-stripeatlas/src/utils/output.ts +119 -0
- package/connectors/connect-stripeatlas/tsconfig.json +16 -0
- package/connectors/connect-substack/.env.example +4 -0
- package/connectors/connect-substack/.npmrc.example +2 -0
- package/connectors/connect-substack/AGENTS.md +168 -0
- package/connectors/connect-substack/CLAUDE.md +168 -0
- package/connectors/connect-substack/GEMINI.md +168 -0
- package/connectors/connect-substack/README.md +146 -0
- package/connectors/connect-substack/package.json +51 -0
- package/connectors/connect-substack/src/api/client.ts +147 -0
- package/connectors/connect-substack/src/api/comments.ts +68 -0
- package/connectors/connect-substack/src/api/index.ts +77 -0
- package/connectors/connect-substack/src/api/posts.ts +135 -0
- package/connectors/connect-substack/src/api/publication.ts +126 -0
- package/connectors/connect-substack/src/api/stats.ts +113 -0
- package/connectors/connect-substack/src/api/subscribers.ts +97 -0
- package/connectors/connect-substack/src/cli/index.ts +531 -0
- package/connectors/connect-substack/src/index.ts +31 -0
- package/connectors/connect-substack/src/types/index.ts +257 -0
- package/connectors/connect-substack/src/utils/config.ts +208 -0
- package/connectors/connect-substack/src/utils/output.ts +143 -0
- package/connectors/connect-substack/tsconfig.json +16 -0
- package/connectors/connect-tiktok/.npmrc.example +2 -0
- package/connectors/connect-tiktok/AGENTS.md +76 -0
- package/connectors/connect-tiktok/CLAUDE.md +76 -0
- package/connectors/connect-tiktok/GEMINI.md +76 -0
- package/connectors/connect-tiktok/README.md +94 -0
- package/connectors/connect-tiktok/package.json +60 -0
- package/connectors/connect-tiktok/src/api/adgroups.ts +144 -0
- package/connectors/connect-tiktok/src/api/ads.ts +160 -0
- package/connectors/connect-tiktok/src/api/advertisers.ts +104 -0
- package/connectors/connect-tiktok/src/api/audiences.ts +246 -0
- package/connectors/connect-tiktok/src/api/business.ts +273 -0
- package/connectors/connect-tiktok/src/api/campaigns.ts +116 -0
- package/connectors/connect-tiktok/src/api/catalogs.ts +326 -0
- package/connectors/connect-tiktok/src/api/client.ts +137 -0
- package/connectors/connect-tiktok/src/api/creatives.ts +293 -0
- package/connectors/connect-tiktok/src/api/events.ts +314 -0
- package/connectors/connect-tiktok/src/api/identity.ts +255 -0
- package/connectors/connect-tiktok/src/api/index.ts +105 -0
- package/connectors/connect-tiktok/src/api/pixels.ts +188 -0
- package/connectors/connect-tiktok/src/api/reports.ts +290 -0
- package/connectors/connect-tiktok/src/api/targeting.ts +326 -0
- package/connectors/connect-tiktok/src/cli/index.ts +1329 -0
- package/connectors/connect-tiktok/src/index.ts +39 -0
- package/connectors/connect-tiktok/src/types/index.ts +1052 -0
- package/connectors/connect-tiktok/src/utils/config.ts +419 -0
- package/connectors/connect-tiktok/src/utils/output.ts +136 -0
- package/connectors/connect-tiktok/tsconfig.json +16 -0
- package/connectors/connect-tinker/.env.example +8 -0
- package/connectors/connect-tinker/.npmrc.example +2 -0
- package/connectors/connect-tinker/AGENTS.md +189 -0
- package/connectors/connect-tinker/CLAUDE.md +189 -0
- package/connectors/connect-tinker/GEMINI.md +189 -0
- package/connectors/connect-tinker/README.md +157 -0
- package/connectors/connect-tinker/package.json +55 -0
- package/connectors/connect-tinker/src/api/client.ts +146 -0
- package/connectors/connect-tinker/src/api/index.ts +100 -0
- package/connectors/connect-tinker/src/api/sampling.ts +163 -0
- package/connectors/connect-tinker/src/api/state.ts +147 -0
- package/connectors/connect-tinker/src/api/training.ts +152 -0
- package/connectors/connect-tinker/src/cli/index.ts +775 -0
- package/connectors/connect-tinker/src/index.ts +28 -0
- package/connectors/connect-tinker/src/types/index.ts +287 -0
- package/connectors/connect-tinker/src/utils/config.ts +230 -0
- package/connectors/connect-tinker/src/utils/output.ts +139 -0
- package/connectors/connect-tinker/tsconfig.json +16 -0
- package/connectors/connect-twilio/.npmrc.example +2 -0
- package/connectors/connect-twilio/AGENTS.md +76 -0
- package/connectors/connect-twilio/CLAUDE.md +76 -0
- package/connectors/connect-twilio/GEMINI.md +76 -0
- package/connectors/connect-twilio/README.md +94 -0
- package/connectors/connect-twilio/package.json +72 -0
- package/connectors/connect-twilio/src/api/accounts.ts +352 -0
- package/connectors/connect-twilio/src/api/calls.ts +120 -0
- package/connectors/connect-twilio/src/api/client.ts +181 -0
- package/connectors/connect-twilio/src/api/conversations.ts +313 -0
- package/connectors/connect-twilio/src/api/index.ts +91 -0
- package/connectors/connect-twilio/src/api/lookup.ts +271 -0
- package/connectors/connect-twilio/src/api/messages.ts +107 -0
- package/connectors/connect-twilio/src/api/numbers.ts +152 -0
- package/connectors/connect-twilio/src/api/verify.ts +213 -0
- package/connectors/connect-twilio/src/api/video.ts +305 -0
- package/connectors/connect-twilio/src/cli/index.ts +1093 -0
- package/connectors/connect-twilio/src/index.ts +34 -0
- package/connectors/connect-twilio/src/types/index.ts +983 -0
- package/connectors/connect-twilio/src/utils/config.ts +424 -0
- package/connectors/connect-twilio/src/utils/output.ts +119 -0
- package/connectors/connect-twilio/tsconfig.json +16 -0
- package/connectors/connect-uspto/.env.example +13 -0
- package/connectors/connect-uspto/.npmrc.example +2 -0
- package/connectors/connect-uspto/AGENTS.md +80 -0
- package/connectors/connect-uspto/CLAUDE.md +80 -0
- package/connectors/connect-uspto/GEMINI.md +80 -0
- package/connectors/connect-uspto/README.md +98 -0
- package/connectors/connect-uspto/package.json +54 -0
- package/connectors/connect-uspto/src/api/browser.ts +335 -0
- package/connectors/connect-uspto/src/api/client.ts +186 -0
- package/connectors/connect-uspto/src/api/index.ts +104 -0
- package/connectors/connect-uspto/src/api/patents.ts +290 -0
- package/connectors/connect-uspto/src/api/ptab.ts +150 -0
- package/connectors/connect-uspto/src/api/trademarks.ts +302 -0
- package/connectors/connect-uspto/src/cli/index.ts +713 -0
- package/connectors/connect-uspto/src/index.ts +26 -0
- package/connectors/connect-uspto/src/types/index.ts +302 -0
- package/connectors/connect-uspto/src/utils/config.ts +235 -0
- package/connectors/connect-uspto/src/utils/output.ts +119 -0
- package/connectors/connect-uspto/tsconfig.json +16 -0
- package/connectors/connect-webflow/.npmrc.example +2 -0
- package/connectors/connect-webflow/AGENTS.md +193 -0
- package/connectors/connect-webflow/CLAUDE.md +193 -0
- package/connectors/connect-webflow/GEMINI.md +193 -0
- package/connectors/connect-webflow/README.md +173 -0
- package/connectors/connect-webflow/package.json +29 -0
- package/connectors/connect-webflow/src/api/assets.ts +89 -0
- package/connectors/connect-webflow/src/api/client.ts +121 -0
- package/connectors/connect-webflow/src/api/collections.ts +46 -0
- package/connectors/connect-webflow/src/api/forms.ts +75 -0
- package/connectors/connect-webflow/src/api/index.ts +93 -0
- package/connectors/connect-webflow/src/api/items.ts +141 -0
- package/connectors/connect-webflow/src/api/orders.ts +89 -0
- package/connectors/connect-webflow/src/api/pages.ts +76 -0
- package/connectors/connect-webflow/src/api/products.ts +160 -0
- package/connectors/connect-webflow/src/api/sites.ts +41 -0
- package/connectors/connect-webflow/src/api/users.ts +81 -0
- package/connectors/connect-webflow/src/cli/index.ts +1048 -0
- package/connectors/connect-webflow/src/index.ts +35 -0
- package/connectors/connect-webflow/src/types/index.ts +488 -0
- package/connectors/connect-webflow/src/utils/config.ts +208 -0
- package/connectors/connect-webflow/src/utils/output.ts +119 -0
- package/connectors/connect-webflow/tsconfig.json +17 -0
- package/connectors/connect-wix/.npmrc.example +2 -0
- package/connectors/connect-wix/AGENTS.md +181 -0
- package/connectors/connect-wix/CLAUDE.md +181 -0
- package/connectors/connect-wix/GEMINI.md +181 -0
- package/connectors/connect-wix/README.md +163 -0
- package/connectors/connect-wix/package.json +29 -0
- package/connectors/connect-wix/src/api/bookings.ts +575 -0
- package/connectors/connect-wix/src/api/client.ts +147 -0
- package/connectors/connect-wix/src/api/contacts.ts +308 -0
- package/connectors/connect-wix/src/api/index.ts +90 -0
- package/connectors/connect-wix/src/api/inventory.ts +195 -0
- package/connectors/connect-wix/src/api/members.ts +172 -0
- package/connectors/connect-wix/src/api/orders.ts +415 -0
- package/connectors/connect-wix/src/api/products.ts +453 -0
- package/connectors/connect-wix/src/api/sites.ts +77 -0
- package/connectors/connect-wix/src/cli/index.ts +1009 -0
- package/connectors/connect-wix/src/index.ts +35 -0
- package/connectors/connect-wix/src/types/index.ts +786 -0
- package/connectors/connect-wix/src/utils/config.ts +219 -0
- package/connectors/connect-wix/src/utils/output.ts +119 -0
- package/connectors/connect-wix/tsconfig.json +17 -0
- package/connectors/connect-x/.env.example +11 -0
- package/connectors/connect-x/.npmrc.example +2 -0
- package/connectors/connect-x/AGENTS.md +84 -0
- package/connectors/connect-x/CLAUDE.md +84 -0
- package/connectors/connect-x/GEMINI.md +84 -0
- package/connectors/connect-x/README.md +102 -0
- package/connectors/connect-x/package.json +59 -0
- package/connectors/connect-x/src/api/client.ts +392 -0
- package/connectors/connect-x/src/api/index.ts +171 -0
- package/connectors/connect-x/src/api/media.ts +323 -0
- package/connectors/connect-x/src/api/oauth.ts +408 -0
- package/connectors/connect-x/src/api/oauth1.ts +351 -0
- package/connectors/connect-x/src/api/tweets.ts +339 -0
- package/connectors/connect-x/src/api/users.ts +259 -0
- package/connectors/connect-x/src/cli/index.ts +1205 -0
- package/connectors/connect-x/src/index.ts +92 -0
- package/connectors/connect-x/src/types/index.ts +230 -0
- package/connectors/connect-x/src/utils/config.ts +496 -0
- package/connectors/connect-x/src/utils/output.ts +119 -0
- package/connectors/connect-x/tsconfig.json +16 -0
- package/connectors/connect-xads/.env.example +11 -0
- package/connectors/connect-xads/.npmrc.example +2 -0
- package/connectors/connect-xads/AGENTS.md +183 -0
- package/connectors/connect-xads/CLAUDE.md +183 -0
- package/connectors/connect-xads/GEMINI.md +183 -0
- package/connectors/connect-xads/README.md +161 -0
- package/connectors/connect-xads/package.json +52 -0
- package/connectors/connect-xads/src/api/accounts.ts +70 -0
- package/connectors/connect-xads/src/api/analytics.ts +165 -0
- package/connectors/connect-xads/src/api/audiences.ts +143 -0
- package/connectors/connect-xads/src/api/campaigns.ts +113 -0
- package/connectors/connect-xads/src/api/client.ts +315 -0
- package/connectors/connect-xads/src/api/index.ts +91 -0
- package/connectors/connect-xads/src/api/line-items.ts +126 -0
- package/connectors/connect-xads/src/api/media.ts +96 -0
- package/connectors/connect-xads/src/api/promoted-tweets.ts +97 -0
- package/connectors/connect-xads/src/api/targeting.ts +165 -0
- package/connectors/connect-xads/src/cli/index.ts +1036 -0
- package/connectors/connect-xads/src/index.ts +41 -0
- package/connectors/connect-xads/src/types/index.ts +474 -0
- package/connectors/connect-xads/src/utils/config.ts +176 -0
- package/connectors/connect-xads/src/utils/output.ts +177 -0
- package/connectors/connect-xads/tsconfig.json +15 -0
- package/connectors/connect-xai/.env.example +4 -0
- package/connectors/connect-xai/.npmrc.example +2 -0
- package/connectors/connect-xai/AGENTS.md +97 -0
- package/connectors/connect-xai/CLAUDE.md +97 -0
- package/connectors/connect-xai/GEMINI.md +97 -0
- package/connectors/connect-xai/README.md +106 -0
- package/connectors/connect-xai/package.json +60 -0
- package/connectors/connect-xai/src/api/chat.ts +114 -0
- package/connectors/connect-xai/src/api/client.ts +122 -0
- package/connectors/connect-xai/src/api/index.ts +58 -0
- package/connectors/connect-xai/src/cli/index.ts +330 -0
- package/connectors/connect-xai/src/index.ts +24 -0
- package/connectors/connect-xai/src/types/index.ts +172 -0
- package/connectors/connect-xai/src/utils/config.ts +208 -0
- package/connectors/connect-xai/src/utils/output.ts +119 -0
- package/connectors/connect-xai/tsconfig.json +16 -0
- package/connectors/connect-youtube/.npmrc.example +2 -0
- package/connectors/connect-youtube/AGENTS.md +76 -0
- package/connectors/connect-youtube/CLAUDE.md +76 -0
- package/connectors/connect-youtube/GEMINI.md +76 -0
- package/connectors/connect-youtube/README.md +94 -0
- package/connectors/connect-youtube/package.json +61 -0
- package/connectors/connect-youtube/src/api/analytics.ts +364 -0
- package/connectors/connect-youtube/src/api/captions.ts +196 -0
- package/connectors/connect-youtube/src/api/categories.ts +107 -0
- package/connectors/connect-youtube/src/api/channels.ts +149 -0
- package/connectors/connect-youtube/src/api/client.ts +278 -0
- package/connectors/connect-youtube/src/api/commentThreads.ts +215 -0
- package/connectors/connect-youtube/src/api/comments.ts +179 -0
- package/connectors/connect-youtube/src/api/index.ts +113 -0
- package/connectors/connect-youtube/src/api/live.ts +480 -0
- package/connectors/connect-youtube/src/api/members.ts +119 -0
- package/connectors/connect-youtube/src/api/playlistItems.ts +184 -0
- package/connectors/connect-youtube/src/api/playlists.ts +174 -0
- package/connectors/connect-youtube/src/api/search.ts +222 -0
- package/connectors/connect-youtube/src/api/subscriptions.ts +164 -0
- package/connectors/connect-youtube/src/api/thumbnails.ts +73 -0
- package/connectors/connect-youtube/src/api/videos.ts +217 -0
- package/connectors/connect-youtube/src/api/watermarks.ts +110 -0
- package/connectors/connect-youtube/src/cli/index.ts +1768 -0
- package/connectors/connect-youtube/src/index.ts +41 -0
- package/connectors/connect-youtube/src/types/index.ts +1207 -0
- package/connectors/connect-youtube/src/utils/auth.ts +236 -0
- package/connectors/connect-youtube/src/utils/config.ts +529 -0
- package/connectors/connect-youtube/src/utils/output.ts +157 -0
- package/connectors/connect-youtube/tsconfig.json +16 -0
- package/connectors/connect-zoom/.npmrc.example +2 -0
- package/connectors/connect-zoom/AGENTS.md +164 -0
- package/connectors/connect-zoom/CLAUDE.md +164 -0
- package/connectors/connect-zoom/GEMINI.md +164 -0
- package/connectors/connect-zoom/README.md +145 -0
- package/connectors/connect-zoom/package.json +51 -0
- package/connectors/connect-zoom/src/api/client.ts +177 -0
- package/connectors/connect-zoom/src/api/index.ts +81 -0
- package/connectors/connect-zoom/src/api/meetings.ts +126 -0
- package/connectors/connect-zoom/src/api/recordings.ts +129 -0
- package/connectors/connect-zoom/src/api/reports.ts +178 -0
- package/connectors/connect-zoom/src/api/users.ts +52 -0
- package/connectors/connect-zoom/src/api/webinars.ts +115 -0
- package/connectors/connect-zoom/src/cli/index.ts +735 -0
- package/connectors/connect-zoom/src/index.ts +26 -0
- package/connectors/connect-zoom/src/types/index.ts +311 -0
- package/connectors/connect-zoom/src/utils/config.ts +241 -0
- package/connectors/connect-zoom/src/utils/output.ts +119 -0
- package/connectors/connect-zoom/tsconfig.json +16 -0
- package/dist/index.js +580 -0
- package/package.json +68 -0
|
@@ -0,0 +1,1104 @@
|
|
|
1
|
+
import type { CloudflareClient } from './client';
|
|
2
|
+
import type { DNSRecord, CreateDNSRecordParams, DNSRecordType, FirewallRule, CreateFirewallRuleParams } from '../types';
|
|
3
|
+
import { DNSApi } from './dns';
|
|
4
|
+
import { FirewallApi } from './firewall';
|
|
5
|
+
import { WorkersApi } from './workers';
|
|
6
|
+
|
|
7
|
+
// ============================================
|
|
8
|
+
// Filter Parser for DNS Records
|
|
9
|
+
// ============================================
|
|
10
|
+
|
|
11
|
+
export interface DNSFilter {
|
|
12
|
+
type?: DNSRecordType | DNSRecordType[];
|
|
13
|
+
name?: string; // Supports wildcards: *.example.com, mail.*
|
|
14
|
+
content?: string;
|
|
15
|
+
proxied?: boolean;
|
|
16
|
+
ttl?: number;
|
|
17
|
+
comment?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface ParsedFilter {
|
|
21
|
+
field: string;
|
|
22
|
+
operator: 'eq' | 'neq' | 'contains' | 'startswith' | 'endswith' | 'regex' | 'glob';
|
|
23
|
+
value: string | number | boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* FilterParser for DNS records
|
|
28
|
+
* Supports filter expressions like:
|
|
29
|
+
* - "type=A" - exact match
|
|
30
|
+
* - "name=*.example.com" - glob pattern
|
|
31
|
+
* - "content~192.168" - contains
|
|
32
|
+
* - "proxied=true" - boolean
|
|
33
|
+
* - "type=A,AAAA" - multiple values (OR)
|
|
34
|
+
*/
|
|
35
|
+
export class FilterParser {
|
|
36
|
+
/**
|
|
37
|
+
* Parse a filter string into structured filters
|
|
38
|
+
* @example "type=A" -> { type: 'A' }
|
|
39
|
+
* @example "type=A,AAAA" -> { type: ['A', 'AAAA'] }
|
|
40
|
+
* @example "name=*.example.com" -> matches subdomains
|
|
41
|
+
*/
|
|
42
|
+
static parse(filterString: string): DNSFilter {
|
|
43
|
+
const filter: DNSFilter = {};
|
|
44
|
+
|
|
45
|
+
if (!filterString || filterString.trim() === '') {
|
|
46
|
+
return filter;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Split by spaces or ampersands for multiple conditions
|
|
50
|
+
const conditions = filterString.split(/\s+(?:and\s+)?|&/i).filter(Boolean);
|
|
51
|
+
|
|
52
|
+
for (const condition of conditions) {
|
|
53
|
+
const match = condition.match(/^(\w+)(=|!=|~|!~)(.+)$/);
|
|
54
|
+
if (!match) continue;
|
|
55
|
+
|
|
56
|
+
const [, field, operator, value] = match;
|
|
57
|
+
|
|
58
|
+
switch (field?.toLowerCase()) {
|
|
59
|
+
case 'type':
|
|
60
|
+
if (value?.includes(',')) {
|
|
61
|
+
filter.type = value.split(',').map(v => v.trim().toUpperCase()) as DNSRecordType[];
|
|
62
|
+
} else {
|
|
63
|
+
filter.type = value?.toUpperCase() as DNSRecordType;
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case 'name':
|
|
67
|
+
filter.name = value;
|
|
68
|
+
break;
|
|
69
|
+
case 'content':
|
|
70
|
+
filter.content = value;
|
|
71
|
+
break;
|
|
72
|
+
case 'proxied':
|
|
73
|
+
filter.proxied = value?.toLowerCase() === 'true';
|
|
74
|
+
break;
|
|
75
|
+
case 'ttl':
|
|
76
|
+
filter.ttl = parseInt(value || '0', 10);
|
|
77
|
+
break;
|
|
78
|
+
case 'comment':
|
|
79
|
+
filter.comment = value;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return filter;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Test if a DNS record matches the filter
|
|
89
|
+
*/
|
|
90
|
+
static matches(record: DNSRecord, filter: DNSFilter): boolean {
|
|
91
|
+
// Type filter
|
|
92
|
+
if (filter.type) {
|
|
93
|
+
const types = Array.isArray(filter.type) ? filter.type : [filter.type];
|
|
94
|
+
if (!types.includes(record.type)) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Name filter (supports glob patterns)
|
|
100
|
+
if (filter.name) {
|
|
101
|
+
if (!this.matchGlob(record.name, filter.name)) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Content filter (supports contains)
|
|
107
|
+
if (filter.content) {
|
|
108
|
+
if (!record.content.includes(filter.content)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Proxied filter
|
|
114
|
+
if (filter.proxied !== undefined) {
|
|
115
|
+
if (record.proxied !== filter.proxied) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// TTL filter
|
|
121
|
+
if (filter.ttl !== undefined) {
|
|
122
|
+
if (record.ttl !== filter.ttl) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Comment filter
|
|
128
|
+
if (filter.comment) {
|
|
129
|
+
if (!record.comment?.includes(filter.comment)) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Match a string against a glob pattern
|
|
139
|
+
* Supports: * (any chars), ? (single char)
|
|
140
|
+
*/
|
|
141
|
+
static matchGlob(str: string, pattern: string): boolean {
|
|
142
|
+
// Convert glob to regex
|
|
143
|
+
const regex = pattern
|
|
144
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape special regex chars except * and ?
|
|
145
|
+
.replace(/\*/g, '.*')
|
|
146
|
+
.replace(/\?/g, '.');
|
|
147
|
+
|
|
148
|
+
return new RegExp(`^${regex}$`, 'i').test(str);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// ============================================
|
|
153
|
+
// Bulk Operation Types
|
|
154
|
+
// ============================================
|
|
155
|
+
|
|
156
|
+
export interface BulkOperationOptions {
|
|
157
|
+
/** Maximum concurrent operations (default: 5) */
|
|
158
|
+
concurrency?: number;
|
|
159
|
+
/** Dry run - don't actually make changes */
|
|
160
|
+
dryRun?: boolean;
|
|
161
|
+
/** Progress callback */
|
|
162
|
+
onProgress?: (progress: BulkProgress) => void;
|
|
163
|
+
/** Continue on error (default: false) */
|
|
164
|
+
continueOnError?: boolean;
|
|
165
|
+
/** Delay between operations in ms (rate limiting) */
|
|
166
|
+
delayMs?: number;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface BulkProgress {
|
|
170
|
+
total: number;
|
|
171
|
+
completed: number;
|
|
172
|
+
succeeded: number;
|
|
173
|
+
failed: number;
|
|
174
|
+
current?: string;
|
|
175
|
+
errors: BulkError[];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export interface BulkError {
|
|
179
|
+
item: string;
|
|
180
|
+
error: string;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export interface BulkResult<T> {
|
|
184
|
+
success: boolean;
|
|
185
|
+
total: number;
|
|
186
|
+
succeeded: number;
|
|
187
|
+
failed: number;
|
|
188
|
+
results: T[];
|
|
189
|
+
errors: BulkError[];
|
|
190
|
+
dryRun: boolean;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export interface DNSImportRecord {
|
|
194
|
+
type: DNSRecordType;
|
|
195
|
+
name: string;
|
|
196
|
+
content: string;
|
|
197
|
+
ttl?: number;
|
|
198
|
+
priority?: number;
|
|
199
|
+
proxied?: boolean;
|
|
200
|
+
comment?: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface DNSExportOptions {
|
|
204
|
+
format: 'json' | 'csv' | 'bind';
|
|
205
|
+
filter?: DNSFilter;
|
|
206
|
+
includeIds?: boolean;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// ============================================
|
|
210
|
+
// Bulk API Class
|
|
211
|
+
// ============================================
|
|
212
|
+
|
|
213
|
+
export class BulkApi {
|
|
214
|
+
private dns: DNSApi;
|
|
215
|
+
private firewall: FirewallApi;
|
|
216
|
+
private workers: WorkersApi;
|
|
217
|
+
|
|
218
|
+
constructor(private client: CloudflareClient) {
|
|
219
|
+
this.dns = new DNSApi(client);
|
|
220
|
+
this.firewall = new FirewallApi(client);
|
|
221
|
+
this.workers = new WorkersApi(client);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// ============================================
|
|
225
|
+
// Bulk DNS Operations
|
|
226
|
+
// ============================================
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Get all DNS records for a zone (handles pagination)
|
|
230
|
+
*/
|
|
231
|
+
async getAllDNSRecords(zoneId: string, filter?: DNSFilter): Promise<DNSRecord[]> {
|
|
232
|
+
const allRecords: DNSRecord[] = [];
|
|
233
|
+
let page = 1;
|
|
234
|
+
const perPage = 100;
|
|
235
|
+
let hasMore = true;
|
|
236
|
+
|
|
237
|
+
while (hasMore) {
|
|
238
|
+
const response = await this.dns.list(zoneId, { page, per_page: perPage });
|
|
239
|
+
const records = response.result || [];
|
|
240
|
+
|
|
241
|
+
// Apply filter if provided
|
|
242
|
+
const filtered = filter
|
|
243
|
+
? records.filter(r => FilterParser.matches(r, filter))
|
|
244
|
+
: records;
|
|
245
|
+
|
|
246
|
+
allRecords.push(...filtered);
|
|
247
|
+
|
|
248
|
+
// Check if there are more pages
|
|
249
|
+
const resultInfo = response.result_info;
|
|
250
|
+
if (resultInfo && resultInfo.page < resultInfo.total_pages) {
|
|
251
|
+
page++;
|
|
252
|
+
} else {
|
|
253
|
+
hasMore = false;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
return allRecords;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Preview records that match a filter (for dry-run/preview)
|
|
262
|
+
*/
|
|
263
|
+
async previewDNSRecords(zoneId: string, filter: DNSFilter): Promise<DNSRecord[]> {
|
|
264
|
+
return this.getAllDNSRecords(zoneId, filter);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Bulk create DNS records
|
|
269
|
+
*/
|
|
270
|
+
async bulkCreateDNS(
|
|
271
|
+
zoneId: string,
|
|
272
|
+
records: DNSImportRecord[],
|
|
273
|
+
options: BulkOperationOptions = {}
|
|
274
|
+
): Promise<BulkResult<DNSRecord>> {
|
|
275
|
+
const {
|
|
276
|
+
concurrency = 5,
|
|
277
|
+
dryRun = false,
|
|
278
|
+
onProgress,
|
|
279
|
+
continueOnError = false,
|
|
280
|
+
delayMs = 0,
|
|
281
|
+
} = options;
|
|
282
|
+
|
|
283
|
+
const results: DNSRecord[] = [];
|
|
284
|
+
const errors: BulkError[] = [];
|
|
285
|
+
let completed = 0;
|
|
286
|
+
let succeeded = 0;
|
|
287
|
+
let failed = 0;
|
|
288
|
+
|
|
289
|
+
const reportProgress = () => {
|
|
290
|
+
onProgress?.({
|
|
291
|
+
total: records.length,
|
|
292
|
+
completed,
|
|
293
|
+
succeeded,
|
|
294
|
+
failed,
|
|
295
|
+
errors,
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
// Process in batches for concurrency control
|
|
300
|
+
for (let i = 0; i < records.length; i += concurrency) {
|
|
301
|
+
const batch = records.slice(i, i + concurrency);
|
|
302
|
+
|
|
303
|
+
const batchPromises = batch.map(async (record) => {
|
|
304
|
+
try {
|
|
305
|
+
if (dryRun) {
|
|
306
|
+
// Simulate success for dry run
|
|
307
|
+
results.push({
|
|
308
|
+
id: 'dry-run-id',
|
|
309
|
+
zone_id: zoneId,
|
|
310
|
+
zone_name: '',
|
|
311
|
+
name: record.name,
|
|
312
|
+
type: record.type,
|
|
313
|
+
content: record.content,
|
|
314
|
+
proxiable: true,
|
|
315
|
+
proxied: record.proxied ?? false,
|
|
316
|
+
ttl: record.ttl ?? 1,
|
|
317
|
+
locked: false,
|
|
318
|
+
created_on: new Date().toISOString(),
|
|
319
|
+
modified_on: new Date().toISOString(),
|
|
320
|
+
});
|
|
321
|
+
succeeded++;
|
|
322
|
+
} else {
|
|
323
|
+
const result = await this.dns.create(zoneId, {
|
|
324
|
+
type: record.type,
|
|
325
|
+
name: record.name,
|
|
326
|
+
content: record.content,
|
|
327
|
+
ttl: record.ttl,
|
|
328
|
+
priority: record.priority,
|
|
329
|
+
proxied: record.proxied,
|
|
330
|
+
comment: record.comment,
|
|
331
|
+
});
|
|
332
|
+
results.push(result);
|
|
333
|
+
succeeded++;
|
|
334
|
+
}
|
|
335
|
+
} catch (err) {
|
|
336
|
+
failed++;
|
|
337
|
+
errors.push({
|
|
338
|
+
item: `${record.type} ${record.name} -> ${record.content}`,
|
|
339
|
+
error: err instanceof Error ? err.message : String(err),
|
|
340
|
+
});
|
|
341
|
+
if (!continueOnError) {
|
|
342
|
+
throw err;
|
|
343
|
+
}
|
|
344
|
+
} finally {
|
|
345
|
+
completed++;
|
|
346
|
+
reportProgress();
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
try {
|
|
351
|
+
await Promise.all(batchPromises);
|
|
352
|
+
} catch {
|
|
353
|
+
if (!continueOnError) break;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// Rate limiting delay between batches
|
|
357
|
+
if (delayMs > 0 && i + concurrency < records.length) {
|
|
358
|
+
await this.delay(delayMs);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
return {
|
|
363
|
+
success: failed === 0,
|
|
364
|
+
total: records.length,
|
|
365
|
+
succeeded,
|
|
366
|
+
failed,
|
|
367
|
+
results,
|
|
368
|
+
errors,
|
|
369
|
+
dryRun,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Bulk update DNS records matching a filter
|
|
375
|
+
*/
|
|
376
|
+
async bulkUpdateDNS(
|
|
377
|
+
zoneId: string,
|
|
378
|
+
filter: DNSFilter,
|
|
379
|
+
updates: Partial<CreateDNSRecordParams>,
|
|
380
|
+
options: BulkOperationOptions = {}
|
|
381
|
+
): Promise<BulkResult<DNSRecord>> {
|
|
382
|
+
const {
|
|
383
|
+
concurrency = 5,
|
|
384
|
+
dryRun = false,
|
|
385
|
+
onProgress,
|
|
386
|
+
continueOnError = false,
|
|
387
|
+
delayMs = 0,
|
|
388
|
+
} = options;
|
|
389
|
+
|
|
390
|
+
// First, get all matching records
|
|
391
|
+
const matchingRecords = await this.getAllDNSRecords(zoneId, filter);
|
|
392
|
+
|
|
393
|
+
const results: DNSRecord[] = [];
|
|
394
|
+
const errors: BulkError[] = [];
|
|
395
|
+
let completed = 0;
|
|
396
|
+
let succeeded = 0;
|
|
397
|
+
let failed = 0;
|
|
398
|
+
|
|
399
|
+
const reportProgress = () => {
|
|
400
|
+
onProgress?.({
|
|
401
|
+
total: matchingRecords.length,
|
|
402
|
+
completed,
|
|
403
|
+
succeeded,
|
|
404
|
+
failed,
|
|
405
|
+
current: matchingRecords[completed]?.name,
|
|
406
|
+
errors,
|
|
407
|
+
});
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
// Process in batches
|
|
411
|
+
for (let i = 0; i < matchingRecords.length; i += concurrency) {
|
|
412
|
+
const batch = matchingRecords.slice(i, i + concurrency);
|
|
413
|
+
|
|
414
|
+
const batchPromises = batch.map(async (record) => {
|
|
415
|
+
try {
|
|
416
|
+
if (dryRun) {
|
|
417
|
+
// Simulate the update
|
|
418
|
+
results.push({
|
|
419
|
+
...record,
|
|
420
|
+
...updates,
|
|
421
|
+
modified_on: new Date().toISOString(),
|
|
422
|
+
} as DNSRecord);
|
|
423
|
+
succeeded++;
|
|
424
|
+
} else {
|
|
425
|
+
// Merge existing record with updates
|
|
426
|
+
const updateParams: CreateDNSRecordParams = {
|
|
427
|
+
type: updates.type ?? record.type,
|
|
428
|
+
name: updates.name ?? record.name,
|
|
429
|
+
content: updates.content ?? record.content,
|
|
430
|
+
ttl: updates.ttl ?? record.ttl,
|
|
431
|
+
proxied: updates.proxied ?? record.proxied,
|
|
432
|
+
priority: updates.priority ?? record.priority,
|
|
433
|
+
comment: updates.comment ?? record.comment,
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
const result = await this.dns.update(zoneId, record.id, updateParams);
|
|
437
|
+
results.push(result);
|
|
438
|
+
succeeded++;
|
|
439
|
+
}
|
|
440
|
+
} catch (err) {
|
|
441
|
+
failed++;
|
|
442
|
+
errors.push({
|
|
443
|
+
item: `${record.type} ${record.name} (${record.id})`,
|
|
444
|
+
error: err instanceof Error ? err.message : String(err),
|
|
445
|
+
});
|
|
446
|
+
if (!continueOnError) {
|
|
447
|
+
throw err;
|
|
448
|
+
}
|
|
449
|
+
} finally {
|
|
450
|
+
completed++;
|
|
451
|
+
reportProgress();
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
try {
|
|
456
|
+
await Promise.all(batchPromises);
|
|
457
|
+
} catch {
|
|
458
|
+
if (!continueOnError) break;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if (delayMs > 0 && i + concurrency < matchingRecords.length) {
|
|
462
|
+
await this.delay(delayMs);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
return {
|
|
467
|
+
success: failed === 0,
|
|
468
|
+
total: matchingRecords.length,
|
|
469
|
+
succeeded,
|
|
470
|
+
failed,
|
|
471
|
+
results,
|
|
472
|
+
errors,
|
|
473
|
+
dryRun,
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Bulk delete DNS records matching a filter
|
|
479
|
+
*/
|
|
480
|
+
async bulkDeleteDNS(
|
|
481
|
+
zoneId: string,
|
|
482
|
+
filter: DNSFilter,
|
|
483
|
+
options: BulkOperationOptions = {}
|
|
484
|
+
): Promise<BulkResult<{ id: string; name: string }>> {
|
|
485
|
+
const {
|
|
486
|
+
concurrency = 5,
|
|
487
|
+
dryRun = false,
|
|
488
|
+
onProgress,
|
|
489
|
+
continueOnError = false,
|
|
490
|
+
delayMs = 0,
|
|
491
|
+
} = options;
|
|
492
|
+
|
|
493
|
+
// Get all matching records
|
|
494
|
+
const matchingRecords = await this.getAllDNSRecords(zoneId, filter);
|
|
495
|
+
|
|
496
|
+
const results: { id: string; name: string }[] = [];
|
|
497
|
+
const errors: BulkError[] = [];
|
|
498
|
+
let completed = 0;
|
|
499
|
+
let succeeded = 0;
|
|
500
|
+
let failed = 0;
|
|
501
|
+
|
|
502
|
+
const reportProgress = () => {
|
|
503
|
+
onProgress?.({
|
|
504
|
+
total: matchingRecords.length,
|
|
505
|
+
completed,
|
|
506
|
+
succeeded,
|
|
507
|
+
failed,
|
|
508
|
+
current: matchingRecords[completed]?.name,
|
|
509
|
+
errors,
|
|
510
|
+
});
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
// Process in batches
|
|
514
|
+
for (let i = 0; i < matchingRecords.length; i += concurrency) {
|
|
515
|
+
const batch = matchingRecords.slice(i, i + concurrency);
|
|
516
|
+
|
|
517
|
+
const batchPromises = batch.map(async (record) => {
|
|
518
|
+
try {
|
|
519
|
+
if (dryRun) {
|
|
520
|
+
results.push({ id: record.id, name: record.name });
|
|
521
|
+
succeeded++;
|
|
522
|
+
} else {
|
|
523
|
+
await this.dns.delete(zoneId, record.id);
|
|
524
|
+
results.push({ id: record.id, name: record.name });
|
|
525
|
+
succeeded++;
|
|
526
|
+
}
|
|
527
|
+
} catch (err) {
|
|
528
|
+
failed++;
|
|
529
|
+
errors.push({
|
|
530
|
+
item: `${record.type} ${record.name} (${record.id})`,
|
|
531
|
+
error: err instanceof Error ? err.message : String(err),
|
|
532
|
+
});
|
|
533
|
+
if (!continueOnError) {
|
|
534
|
+
throw err;
|
|
535
|
+
}
|
|
536
|
+
} finally {
|
|
537
|
+
completed++;
|
|
538
|
+
reportProgress();
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
|
|
542
|
+
try {
|
|
543
|
+
await Promise.all(batchPromises);
|
|
544
|
+
} catch {
|
|
545
|
+
if (!continueOnError) break;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
if (delayMs > 0 && i + concurrency < matchingRecords.length) {
|
|
549
|
+
await this.delay(delayMs);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
return {
|
|
554
|
+
success: failed === 0,
|
|
555
|
+
total: matchingRecords.length,
|
|
556
|
+
succeeded,
|
|
557
|
+
failed,
|
|
558
|
+
results,
|
|
559
|
+
errors,
|
|
560
|
+
dryRun,
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Export DNS records to various formats
|
|
566
|
+
*/
|
|
567
|
+
async exportDNS(zoneId: string, options: DNSExportOptions): Promise<string> {
|
|
568
|
+
const records = await this.getAllDNSRecords(zoneId, options.filter);
|
|
569
|
+
|
|
570
|
+
switch (options.format) {
|
|
571
|
+
case 'json':
|
|
572
|
+
return this.exportDNSToJSON(records, options.includeIds);
|
|
573
|
+
case 'csv':
|
|
574
|
+
return this.exportDNSToCSV(records, options.includeIds);
|
|
575
|
+
case 'bind':
|
|
576
|
+
return this.dns.export(zoneId);
|
|
577
|
+
default:
|
|
578
|
+
throw new Error(`Unknown export format: ${options.format}`);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Import DNS records from JSON or CSV
|
|
584
|
+
*/
|
|
585
|
+
async importDNS(
|
|
586
|
+
zoneId: string,
|
|
587
|
+
data: string,
|
|
588
|
+
format: 'json' | 'csv',
|
|
589
|
+
options: BulkOperationOptions = {}
|
|
590
|
+
): Promise<BulkResult<DNSRecord>> {
|
|
591
|
+
let records: DNSImportRecord[];
|
|
592
|
+
|
|
593
|
+
if (format === 'json') {
|
|
594
|
+
records = this.parseDNSFromJSON(data);
|
|
595
|
+
} else {
|
|
596
|
+
records = this.parseDNSFromCSV(data);
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
return this.bulkCreateDNS(zoneId, records, options);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// ============================================
|
|
603
|
+
// Bulk Firewall Operations
|
|
604
|
+
// ============================================
|
|
605
|
+
|
|
606
|
+
/**
|
|
607
|
+
* Get all firewall rules for a zone
|
|
608
|
+
*/
|
|
609
|
+
async getAllFirewallRules(zoneId: string): Promise<FirewallRule[]> {
|
|
610
|
+
const allRules: FirewallRule[] = [];
|
|
611
|
+
let page = 1;
|
|
612
|
+
const perPage = 100;
|
|
613
|
+
let hasMore = true;
|
|
614
|
+
|
|
615
|
+
while (hasMore) {
|
|
616
|
+
const response = await this.firewall.listRules(zoneId, { page, per_page: perPage });
|
|
617
|
+
const rules = response.result || [];
|
|
618
|
+
allRules.push(...rules);
|
|
619
|
+
|
|
620
|
+
const resultInfo = response.result_info;
|
|
621
|
+
if (resultInfo && resultInfo.page < resultInfo.total_pages) {
|
|
622
|
+
page++;
|
|
623
|
+
} else {
|
|
624
|
+
hasMore = false;
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
return allRules;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Bulk create firewall rules
|
|
633
|
+
*/
|
|
634
|
+
async bulkCreateFirewallRules(
|
|
635
|
+
zoneId: string,
|
|
636
|
+
rules: CreateFirewallRuleParams[],
|
|
637
|
+
options: BulkOperationOptions = {}
|
|
638
|
+
): Promise<BulkResult<FirewallRule>> {
|
|
639
|
+
const {
|
|
640
|
+
dryRun = false,
|
|
641
|
+
onProgress,
|
|
642
|
+
} = options;
|
|
643
|
+
|
|
644
|
+
const errors: BulkError[] = [];
|
|
645
|
+
let results: FirewallRule[] = [];
|
|
646
|
+
|
|
647
|
+
onProgress?.({
|
|
648
|
+
total: rules.length,
|
|
649
|
+
completed: 0,
|
|
650
|
+
succeeded: 0,
|
|
651
|
+
failed: 0,
|
|
652
|
+
errors,
|
|
653
|
+
});
|
|
654
|
+
|
|
655
|
+
if (dryRun) {
|
|
656
|
+
// Simulate success for dry run
|
|
657
|
+
results = rules.map((rule, i) => ({
|
|
658
|
+
id: `dry-run-${i}`,
|
|
659
|
+
paused: rule.paused ?? false,
|
|
660
|
+
description: rule.description ?? '',
|
|
661
|
+
action: rule.action,
|
|
662
|
+
filter: {
|
|
663
|
+
id: `filter-${i}`,
|
|
664
|
+
expression: rule.filter.expression,
|
|
665
|
+
paused: false,
|
|
666
|
+
description: rule.filter.description,
|
|
667
|
+
},
|
|
668
|
+
created_on: new Date().toISOString(),
|
|
669
|
+
modified_on: new Date().toISOString(),
|
|
670
|
+
}));
|
|
671
|
+
|
|
672
|
+
onProgress?.({
|
|
673
|
+
total: rules.length,
|
|
674
|
+
completed: rules.length,
|
|
675
|
+
succeeded: rules.length,
|
|
676
|
+
failed: 0,
|
|
677
|
+
errors,
|
|
678
|
+
});
|
|
679
|
+
|
|
680
|
+
return {
|
|
681
|
+
success: true,
|
|
682
|
+
total: rules.length,
|
|
683
|
+
succeeded: rules.length,
|
|
684
|
+
failed: 0,
|
|
685
|
+
results,
|
|
686
|
+
errors,
|
|
687
|
+
dryRun: true,
|
|
688
|
+
};
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
try {
|
|
692
|
+
// Cloudflare API supports batch creation
|
|
693
|
+
results = await this.firewall.createRules(zoneId, rules);
|
|
694
|
+
|
|
695
|
+
onProgress?.({
|
|
696
|
+
total: rules.length,
|
|
697
|
+
completed: rules.length,
|
|
698
|
+
succeeded: results.length,
|
|
699
|
+
failed: rules.length - results.length,
|
|
700
|
+
errors,
|
|
701
|
+
});
|
|
702
|
+
|
|
703
|
+
return {
|
|
704
|
+
success: true,
|
|
705
|
+
total: rules.length,
|
|
706
|
+
succeeded: results.length,
|
|
707
|
+
failed: 0,
|
|
708
|
+
results,
|
|
709
|
+
errors,
|
|
710
|
+
dryRun: false,
|
|
711
|
+
};
|
|
712
|
+
} catch (err) {
|
|
713
|
+
errors.push({
|
|
714
|
+
item: 'Bulk firewall rules creation',
|
|
715
|
+
error: err instanceof Error ? err.message : String(err),
|
|
716
|
+
});
|
|
717
|
+
|
|
718
|
+
return {
|
|
719
|
+
success: false,
|
|
720
|
+
total: rules.length,
|
|
721
|
+
succeeded: 0,
|
|
722
|
+
failed: rules.length,
|
|
723
|
+
results: [],
|
|
724
|
+
errors,
|
|
725
|
+
dryRun: false,
|
|
726
|
+
};
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/**
|
|
731
|
+
* Bulk delete firewall rules
|
|
732
|
+
*/
|
|
733
|
+
async bulkDeleteFirewallRules(
|
|
734
|
+
zoneId: string,
|
|
735
|
+
ruleIds: string[],
|
|
736
|
+
options: BulkOperationOptions = {}
|
|
737
|
+
): Promise<BulkResult<{ id: string }>> {
|
|
738
|
+
const {
|
|
739
|
+
concurrency = 5,
|
|
740
|
+
dryRun = false,
|
|
741
|
+
onProgress,
|
|
742
|
+
continueOnError = false,
|
|
743
|
+
delayMs = 0,
|
|
744
|
+
} = options;
|
|
745
|
+
|
|
746
|
+
const results: { id: string }[] = [];
|
|
747
|
+
const errors: BulkError[] = [];
|
|
748
|
+
let completed = 0;
|
|
749
|
+
let succeeded = 0;
|
|
750
|
+
let failed = 0;
|
|
751
|
+
|
|
752
|
+
const reportProgress = () => {
|
|
753
|
+
onProgress?.({
|
|
754
|
+
total: ruleIds.length,
|
|
755
|
+
completed,
|
|
756
|
+
succeeded,
|
|
757
|
+
failed,
|
|
758
|
+
errors,
|
|
759
|
+
});
|
|
760
|
+
};
|
|
761
|
+
|
|
762
|
+
for (let i = 0; i < ruleIds.length; i += concurrency) {
|
|
763
|
+
const batch = ruleIds.slice(i, i + concurrency);
|
|
764
|
+
|
|
765
|
+
const batchPromises = batch.map(async (ruleId) => {
|
|
766
|
+
try {
|
|
767
|
+
if (dryRun) {
|
|
768
|
+
results.push({ id: ruleId });
|
|
769
|
+
succeeded++;
|
|
770
|
+
} else {
|
|
771
|
+
await this.firewall.deleteRule(zoneId, ruleId);
|
|
772
|
+
results.push({ id: ruleId });
|
|
773
|
+
succeeded++;
|
|
774
|
+
}
|
|
775
|
+
} catch (err) {
|
|
776
|
+
failed++;
|
|
777
|
+
errors.push({
|
|
778
|
+
item: `Rule ${ruleId}`,
|
|
779
|
+
error: err instanceof Error ? err.message : String(err),
|
|
780
|
+
});
|
|
781
|
+
if (!continueOnError) {
|
|
782
|
+
throw err;
|
|
783
|
+
}
|
|
784
|
+
} finally {
|
|
785
|
+
completed++;
|
|
786
|
+
reportProgress();
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
|
|
790
|
+
try {
|
|
791
|
+
await Promise.all(batchPromises);
|
|
792
|
+
} catch {
|
|
793
|
+
if (!continueOnError) break;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
if (delayMs > 0 && i + concurrency < ruleIds.length) {
|
|
797
|
+
await this.delay(delayMs);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
return {
|
|
802
|
+
success: failed === 0,
|
|
803
|
+
total: ruleIds.length,
|
|
804
|
+
succeeded,
|
|
805
|
+
failed,
|
|
806
|
+
results,
|
|
807
|
+
errors,
|
|
808
|
+
dryRun,
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// ============================================
|
|
813
|
+
// Bulk Worker Operations
|
|
814
|
+
// ============================================
|
|
815
|
+
|
|
816
|
+
/**
|
|
817
|
+
* Bulk deploy workers from a directory or config
|
|
818
|
+
*/
|
|
819
|
+
async bulkDeployWorkers(
|
|
820
|
+
accountId: string,
|
|
821
|
+
workers: Array<{
|
|
822
|
+
name: string;
|
|
823
|
+
script: string;
|
|
824
|
+
compatibility_date?: string;
|
|
825
|
+
}>,
|
|
826
|
+
options: BulkOperationOptions = {}
|
|
827
|
+
): Promise<BulkResult<{ name: string; id: string }>> {
|
|
828
|
+
const {
|
|
829
|
+
concurrency = 3,
|
|
830
|
+
dryRun = false,
|
|
831
|
+
onProgress,
|
|
832
|
+
continueOnError = false,
|
|
833
|
+
delayMs = 1000, // Workers have stricter rate limits
|
|
834
|
+
} = options;
|
|
835
|
+
|
|
836
|
+
const results: { name: string; id: string }[] = [];
|
|
837
|
+
const errors: BulkError[] = [];
|
|
838
|
+
let completed = 0;
|
|
839
|
+
let succeeded = 0;
|
|
840
|
+
let failed = 0;
|
|
841
|
+
|
|
842
|
+
const reportProgress = () => {
|
|
843
|
+
onProgress?.({
|
|
844
|
+
total: workers.length,
|
|
845
|
+
completed,
|
|
846
|
+
succeeded,
|
|
847
|
+
failed,
|
|
848
|
+
current: workers[completed]?.name,
|
|
849
|
+
errors,
|
|
850
|
+
});
|
|
851
|
+
};
|
|
852
|
+
|
|
853
|
+
for (let i = 0; i < workers.length; i += concurrency) {
|
|
854
|
+
const batch = workers.slice(i, i + concurrency);
|
|
855
|
+
|
|
856
|
+
const batchPromises = batch.map(async (worker) => {
|
|
857
|
+
try {
|
|
858
|
+
if (dryRun) {
|
|
859
|
+
results.push({ name: worker.name, id: 'dry-run-id' });
|
|
860
|
+
succeeded++;
|
|
861
|
+
} else {
|
|
862
|
+
const result = await this.workers.create(accountId, worker.name, {
|
|
863
|
+
script: worker.script,
|
|
864
|
+
compatibility_date: worker.compatibility_date,
|
|
865
|
+
});
|
|
866
|
+
results.push({ name: worker.name, id: result.id });
|
|
867
|
+
succeeded++;
|
|
868
|
+
}
|
|
869
|
+
} catch (err) {
|
|
870
|
+
failed++;
|
|
871
|
+
errors.push({
|
|
872
|
+
item: `Worker: ${worker.name}`,
|
|
873
|
+
error: err instanceof Error ? err.message : String(err),
|
|
874
|
+
});
|
|
875
|
+
if (!continueOnError) {
|
|
876
|
+
throw err;
|
|
877
|
+
}
|
|
878
|
+
} finally {
|
|
879
|
+
completed++;
|
|
880
|
+
reportProgress();
|
|
881
|
+
}
|
|
882
|
+
});
|
|
883
|
+
|
|
884
|
+
try {
|
|
885
|
+
await Promise.all(batchPromises);
|
|
886
|
+
} catch {
|
|
887
|
+
if (!continueOnError) break;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
if (delayMs > 0 && i + concurrency < workers.length) {
|
|
891
|
+
await this.delay(delayMs);
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
return {
|
|
896
|
+
success: failed === 0,
|
|
897
|
+
total: workers.length,
|
|
898
|
+
succeeded,
|
|
899
|
+
failed,
|
|
900
|
+
results,
|
|
901
|
+
errors,
|
|
902
|
+
dryRun,
|
|
903
|
+
};
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/**
|
|
907
|
+
* Bulk delete workers
|
|
908
|
+
*/
|
|
909
|
+
async bulkDeleteWorkers(
|
|
910
|
+
accountId: string,
|
|
911
|
+
scriptNames: string[],
|
|
912
|
+
options: BulkOperationOptions = {}
|
|
913
|
+
): Promise<BulkResult<{ name: string }>> {
|
|
914
|
+
const {
|
|
915
|
+
concurrency = 3,
|
|
916
|
+
dryRun = false,
|
|
917
|
+
onProgress,
|
|
918
|
+
continueOnError = false,
|
|
919
|
+
delayMs = 500,
|
|
920
|
+
} = options;
|
|
921
|
+
|
|
922
|
+
const results: { name: string }[] = [];
|
|
923
|
+
const errors: BulkError[] = [];
|
|
924
|
+
let completed = 0;
|
|
925
|
+
let succeeded = 0;
|
|
926
|
+
let failed = 0;
|
|
927
|
+
|
|
928
|
+
const reportProgress = () => {
|
|
929
|
+
onProgress?.({
|
|
930
|
+
total: scriptNames.length,
|
|
931
|
+
completed,
|
|
932
|
+
succeeded,
|
|
933
|
+
failed,
|
|
934
|
+
errors,
|
|
935
|
+
});
|
|
936
|
+
};
|
|
937
|
+
|
|
938
|
+
for (let i = 0; i < scriptNames.length; i += concurrency) {
|
|
939
|
+
const batch = scriptNames.slice(i, i + concurrency);
|
|
940
|
+
|
|
941
|
+
const batchPromises = batch.map(async (name) => {
|
|
942
|
+
try {
|
|
943
|
+
if (dryRun) {
|
|
944
|
+
results.push({ name });
|
|
945
|
+
succeeded++;
|
|
946
|
+
} else {
|
|
947
|
+
await this.workers.delete(accountId, name);
|
|
948
|
+
results.push({ name });
|
|
949
|
+
succeeded++;
|
|
950
|
+
}
|
|
951
|
+
} catch (err) {
|
|
952
|
+
failed++;
|
|
953
|
+
errors.push({
|
|
954
|
+
item: `Worker: ${name}`,
|
|
955
|
+
error: err instanceof Error ? err.message : String(err),
|
|
956
|
+
});
|
|
957
|
+
if (!continueOnError) {
|
|
958
|
+
throw err;
|
|
959
|
+
}
|
|
960
|
+
} finally {
|
|
961
|
+
completed++;
|
|
962
|
+
reportProgress();
|
|
963
|
+
}
|
|
964
|
+
});
|
|
965
|
+
|
|
966
|
+
try {
|
|
967
|
+
await Promise.all(batchPromises);
|
|
968
|
+
} catch {
|
|
969
|
+
if (!continueOnError) break;
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
if (delayMs > 0 && i + concurrency < scriptNames.length) {
|
|
973
|
+
await this.delay(delayMs);
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
return {
|
|
978
|
+
success: failed === 0,
|
|
979
|
+
total: scriptNames.length,
|
|
980
|
+
succeeded,
|
|
981
|
+
failed,
|
|
982
|
+
results,
|
|
983
|
+
errors,
|
|
984
|
+
dryRun,
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
// ============================================
|
|
989
|
+
// Helper Methods
|
|
990
|
+
// ============================================
|
|
991
|
+
|
|
992
|
+
private delay(ms: number): Promise<void> {
|
|
993
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
private exportDNSToJSON(records: DNSRecord[], includeIds = false): string {
|
|
997
|
+
const exportRecords = records.map(r => ({
|
|
998
|
+
...(includeIds ? { id: r.id } : {}),
|
|
999
|
+
type: r.type,
|
|
1000
|
+
name: r.name,
|
|
1001
|
+
content: r.content,
|
|
1002
|
+
ttl: r.ttl,
|
|
1003
|
+
proxied: r.proxied,
|
|
1004
|
+
priority: r.priority,
|
|
1005
|
+
comment: r.comment,
|
|
1006
|
+
}));
|
|
1007
|
+
return JSON.stringify(exportRecords, null, 2);
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
private exportDNSToCSV(records: DNSRecord[], includeIds = false): string {
|
|
1011
|
+
const headers = includeIds
|
|
1012
|
+
? ['id', 'type', 'name', 'content', 'ttl', 'proxied', 'priority', 'comment']
|
|
1013
|
+
: ['type', 'name', 'content', 'ttl', 'proxied', 'priority', 'comment'];
|
|
1014
|
+
|
|
1015
|
+
const rows = records.map(r => {
|
|
1016
|
+
const values = includeIds
|
|
1017
|
+
? [r.id, r.type, r.name, r.content, r.ttl, r.proxied, r.priority ?? '', r.comment ?? '']
|
|
1018
|
+
: [r.type, r.name, r.content, r.ttl, r.proxied, r.priority ?? '', r.comment ?? ''];
|
|
1019
|
+
return values.map(v => this.escapeCSV(String(v))).join(',');
|
|
1020
|
+
});
|
|
1021
|
+
|
|
1022
|
+
return [headers.join(','), ...rows].join('\n');
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
private escapeCSV(value: string): string {
|
|
1026
|
+
if (value.includes(',') || value.includes('"') || value.includes('\n')) {
|
|
1027
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
1028
|
+
}
|
|
1029
|
+
return value;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
private parseDNSFromJSON(data: string): DNSImportRecord[] {
|
|
1033
|
+
const parsed = JSON.parse(data);
|
|
1034
|
+
const records = Array.isArray(parsed) ? parsed : [parsed];
|
|
1035
|
+
|
|
1036
|
+
return records.map((r: Record<string, unknown>) => ({
|
|
1037
|
+
type: String(r.type).toUpperCase() as DNSRecordType,
|
|
1038
|
+
name: String(r.name),
|
|
1039
|
+
content: String(r.content),
|
|
1040
|
+
ttl: r.ttl ? Number(r.ttl) : undefined,
|
|
1041
|
+
priority: r.priority ? Number(r.priority) : undefined,
|
|
1042
|
+
proxied: r.proxied === true || r.proxied === 'true',
|
|
1043
|
+
comment: r.comment ? String(r.comment) : undefined,
|
|
1044
|
+
}));
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
private parseDNSFromCSV(data: string): DNSImportRecord[] {
|
|
1048
|
+
const lines = data.trim().split('\n');
|
|
1049
|
+
if (lines.length < 2) {
|
|
1050
|
+
throw new Error('CSV must have a header row and at least one data row');
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
const headers = this.parseCSVLine(lines[0]!).map(h => h.toLowerCase().trim());
|
|
1054
|
+
const records: DNSImportRecord[] = [];
|
|
1055
|
+
|
|
1056
|
+
for (let i = 1; i < lines.length; i++) {
|
|
1057
|
+
const values = this.parseCSVLine(lines[i]!);
|
|
1058
|
+
const record: Record<string, unknown> = {};
|
|
1059
|
+
|
|
1060
|
+
headers.forEach((header, idx) => {
|
|
1061
|
+
record[header] = values[idx];
|
|
1062
|
+
});
|
|
1063
|
+
|
|
1064
|
+
records.push({
|
|
1065
|
+
type: String(record.type).toUpperCase() as DNSRecordType,
|
|
1066
|
+
name: String(record.name),
|
|
1067
|
+
content: String(record.content),
|
|
1068
|
+
ttl: record.ttl ? Number(record.ttl) : undefined,
|
|
1069
|
+
priority: record.priority ? Number(record.priority) : undefined,
|
|
1070
|
+
proxied: record.proxied === 'true' || record.proxied === true,
|
|
1071
|
+
comment: record.comment ? String(record.comment) : undefined,
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
return records;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
private parseCSVLine(line: string): string[] {
|
|
1079
|
+
const values: string[] = [];
|
|
1080
|
+
let current = '';
|
|
1081
|
+
let inQuotes = false;
|
|
1082
|
+
|
|
1083
|
+
for (let i = 0; i < line.length; i++) {
|
|
1084
|
+
const char = line[i];
|
|
1085
|
+
|
|
1086
|
+
if (char === '"') {
|
|
1087
|
+
if (inQuotes && line[i + 1] === '"') {
|
|
1088
|
+
current += '"';
|
|
1089
|
+
i++;
|
|
1090
|
+
} else {
|
|
1091
|
+
inQuotes = !inQuotes;
|
|
1092
|
+
}
|
|
1093
|
+
} else if (char === ',' && !inQuotes) {
|
|
1094
|
+
values.push(current);
|
|
1095
|
+
current = '';
|
|
1096
|
+
} else {
|
|
1097
|
+
current += char;
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
values.push(current);
|
|
1101
|
+
|
|
1102
|
+
return values;
|
|
1103
|
+
}
|
|
1104
|
+
}
|