@hasna/connectors 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +204 -1
- package/bin/mcp.js +204 -1
- package/bin/serve.js +203 -0
- package/connectors/connect-ably/.env.example +11 -0
- package/connectors/connect-ably/CLAUDE.md +111 -0
- package/connectors/connect-ably/README.md +193 -0
- package/connectors/connect-ably/package.json +54 -0
- package/connectors/connect-ably/scripts/release.ts +179 -0
- package/connectors/connect-ably/src/api/channels.ts +33 -0
- package/connectors/connect-ably/src/api/client.ts +203 -0
- package/connectors/connect-ably/src/api/index.ts +59 -0
- package/connectors/connect-ably/src/api/messages.ts +48 -0
- package/connectors/connect-ably/src/api/presence.ts +39 -0
- package/connectors/connect-ably/src/api/stats.ts +29 -0
- package/connectors/connect-ably/src/cli/index.ts +397 -0
- package/connectors/connect-ably/src/index.ts +102 -0
- package/connectors/connect-ably/src/types/index.ts +294 -0
- package/connectors/connect-ably/src/utils/auth.ts +274 -0
- package/connectors/connect-ably/src/utils/bulk.ts +212 -0
- package/connectors/connect-ably/src/utils/config.ts +323 -0
- package/connectors/connect-ably/src/utils/output.ts +175 -0
- package/connectors/connect-ably/src/utils/settings.ts +114 -0
- package/connectors/connect-ably/src/utils/storage.ts +198 -0
- package/connectors/connect-ably/tsconfig.json +16 -0
- package/connectors/connect-assemblyai/.env.example +11 -0
- package/connectors/connect-assemblyai/CLAUDE.md +128 -0
- package/connectors/connect-assemblyai/README.md +193 -0
- package/connectors/connect-assemblyai/package.json +50 -0
- package/connectors/connect-assemblyai/src/api/client.ts +192 -0
- package/connectors/connect-assemblyai/src/api/index.ts +71 -0
- package/connectors/connect-assemblyai/src/cli/index.ts +384 -0
- package/connectors/connect-assemblyai/src/index.ts +19 -0
- package/connectors/connect-assemblyai/src/types/index.ts +277 -0
- package/connectors/connect-assemblyai/src/utils/config.ts +103 -0
- package/connectors/connect-assemblyai/src/utils/output.ts +119 -0
- package/connectors/connect-assemblyai/tsconfig.json +16 -0
- package/connectors/connect-baseten/.env.example +11 -0
- package/connectors/connect-baseten/CLAUDE.md +128 -0
- package/connectors/connect-baseten/README.md +193 -0
- package/connectors/connect-baseten/package.json +51 -0
- package/connectors/connect-baseten/src/api/client.ts +71 -0
- package/connectors/connect-baseten/src/api/index.ts +40 -0
- package/connectors/connect-baseten/src/cli/index.ts +244 -0
- package/connectors/connect-baseten/src/index.ts +19 -0
- package/connectors/connect-baseten/src/types/index.ts +55 -0
- package/connectors/connect-baseten/src/utils/config.ts +103 -0
- package/connectors/connect-baseten/src/utils/output.ts +119 -0
- package/connectors/connect-baseten/tsconfig.json +16 -0
- package/connectors/connect-box/.env.example +11 -0
- package/connectors/connect-box/CLAUDE.md +272 -0
- package/connectors/connect-box/README.md +193 -0
- package/connectors/connect-box/package.json +51 -0
- package/connectors/connect-box/scripts/release.ts +179 -0
- package/connectors/connect-box/src/api/client.ts +213 -0
- package/connectors/connect-box/src/api/example.ts +48 -0
- package/connectors/connect-box/src/api/index.ts +51 -0
- package/connectors/connect-box/src/cli/index.ts +254 -0
- package/connectors/connect-box/src/index.ts +103 -0
- package/connectors/connect-box/src/types/index.ts +237 -0
- package/connectors/connect-box/src/utils/auth.ts +274 -0
- package/connectors/connect-box/src/utils/bulk.ts +212 -0
- package/connectors/connect-box/src/utils/config.ts +326 -0
- package/connectors/connect-box/src/utils/output.ts +175 -0
- package/connectors/connect-box/src/utils/settings.ts +114 -0
- package/connectors/connect-box/src/utils/storage.ts +198 -0
- package/connectors/connect-box/tsconfig.json +16 -0
- package/connectors/connect-cerebras/.env.example +11 -0
- package/connectors/connect-cerebras/CLAUDE.md +128 -0
- package/connectors/connect-cerebras/README.md +193 -0
- package/connectors/connect-cerebras/package.json +51 -0
- package/connectors/connect-cerebras/src/api/client.ts +64 -0
- package/connectors/connect-cerebras/src/api/index.ts +32 -0
- package/connectors/connect-cerebras/src/cli/index.ts +244 -0
- package/connectors/connect-cerebras/src/index.ts +19 -0
- package/connectors/connect-cerebras/src/types/index.ts +65 -0
- package/connectors/connect-cerebras/src/utils/config.ts +103 -0
- package/connectors/connect-cerebras/src/utils/output.ts +119 -0
- package/connectors/connect-cerebras/tsconfig.json +16 -0
- package/connectors/connect-clearbit/.env.example +11 -0
- package/connectors/connect-clearbit/CLAUDE.md +272 -0
- package/connectors/connect-clearbit/README.md +193 -0
- package/connectors/connect-clearbit/package.json +51 -0
- package/connectors/connect-clearbit/scripts/release.ts +179 -0
- package/connectors/connect-clearbit/src/api/client.ts +213 -0
- package/connectors/connect-clearbit/src/api/example.ts +48 -0
- package/connectors/connect-clearbit/src/api/index.ts +51 -0
- package/connectors/connect-clearbit/src/cli/index.ts +254 -0
- package/connectors/connect-clearbit/src/index.ts +103 -0
- package/connectors/connect-clearbit/src/types/index.ts +237 -0
- package/connectors/connect-clearbit/src/utils/auth.ts +274 -0
- package/connectors/connect-clearbit/src/utils/bulk.ts +212 -0
- package/connectors/connect-clearbit/src/utils/config.ts +326 -0
- package/connectors/connect-clearbit/src/utils/output.ts +175 -0
- package/connectors/connect-clearbit/src/utils/settings.ts +114 -0
- package/connectors/connect-clearbit/src/utils/storage.ts +198 -0
- package/connectors/connect-clearbit/tsconfig.json +16 -0
- package/connectors/connect-coda/.env.example +11 -0
- package/connectors/connect-coda/CLAUDE.md +272 -0
- package/connectors/connect-coda/README.md +193 -0
- package/connectors/connect-coda/package.json +51 -0
- package/connectors/connect-coda/scripts/release.ts +179 -0
- package/connectors/connect-coda/src/api/client.ts +213 -0
- package/connectors/connect-coda/src/api/example.ts +48 -0
- package/connectors/connect-coda/src/api/index.ts +51 -0
- package/connectors/connect-coda/src/cli/index.ts +254 -0
- package/connectors/connect-coda/src/index.ts +103 -0
- package/connectors/connect-coda/src/types/index.ts +237 -0
- package/connectors/connect-coda/src/utils/auth.ts +274 -0
- package/connectors/connect-coda/src/utils/bulk.ts +212 -0
- package/connectors/connect-coda/src/utils/config.ts +326 -0
- package/connectors/connect-coda/src/utils/output.ts +175 -0
- package/connectors/connect-coda/src/utils/settings.ts +114 -0
- package/connectors/connect-coda/src/utils/storage.ts +198 -0
- package/connectors/connect-coda/tsconfig.json +16 -0
- package/connectors/connect-cohere/.env.example +11 -0
- package/connectors/connect-cohere/CLAUDE.md +128 -0
- package/connectors/connect-cohere/README.md +193 -0
- package/connectors/connect-cohere/package.json +53 -0
- package/connectors/connect-cohere/src/api/client.ts +109 -0
- package/connectors/connect-cohere/src/api/index.ts +59 -0
- package/connectors/connect-cohere/src/cli/index.ts +255 -0
- package/connectors/connect-cohere/src/index.ts +19 -0
- package/connectors/connect-cohere/src/types/index.ts +132 -0
- package/connectors/connect-cohere/src/utils/config.ts +197 -0
- package/connectors/connect-cohere/src/utils/output.ts +119 -0
- package/connectors/connect-cohere/tsconfig.json +16 -0
- package/connectors/connect-deepgram/.env.example +11 -0
- package/connectors/connect-deepgram/CLAUDE.md +128 -0
- package/connectors/connect-deepgram/README.md +193 -0
- package/connectors/connect-deepgram/package.json +51 -0
- package/connectors/connect-deepgram/src/api/client.ts +235 -0
- package/connectors/connect-deepgram/src/api/index.ts +57 -0
- package/connectors/connect-deepgram/src/cli/index.ts +339 -0
- package/connectors/connect-deepgram/src/index.ts +19 -0
- package/connectors/connect-deepgram/src/types/index.ts +232 -0
- package/connectors/connect-deepgram/src/utils/config.ts +103 -0
- package/connectors/connect-deepgram/src/utils/output.ts +119 -0
- package/connectors/connect-deepgram/tsconfig.json +16 -0
- package/connectors/connect-deepseek/.env.example +11 -0
- package/connectors/connect-deepseek/CLAUDE.md +128 -0
- package/connectors/connect-deepseek/README.md +193 -0
- package/connectors/connect-deepseek/package.json +51 -0
- package/connectors/connect-deepseek/src/api/client.ts +108 -0
- package/connectors/connect-deepseek/src/api/index.ts +36 -0
- package/connectors/connect-deepseek/src/cli/index.ts +167 -0
- package/connectors/connect-deepseek/src/index.ts +19 -0
- package/connectors/connect-deepseek/src/types/index.ts +72 -0
- package/connectors/connect-deepseek/src/utils/config.ts +103 -0
- package/connectors/connect-deepseek/src/utils/output.ts +119 -0
- package/connectors/connect-deepseek/tsconfig.json +16 -0
- package/connectors/connect-dropbox/.env.example +11 -0
- package/connectors/connect-dropbox/CLAUDE.md +119 -0
- package/connectors/connect-dropbox/README.md +193 -0
- package/connectors/connect-dropbox/package.json +51 -0
- package/connectors/connect-dropbox/src/api/client.ts +222 -0
- package/connectors/connect-dropbox/src/api/index.ts +395 -0
- package/connectors/connect-dropbox/src/cli/index.ts +627 -0
- package/connectors/connect-dropbox/src/index.ts +20 -0
- package/connectors/connect-dropbox/src/types/index.ts +516 -0
- package/connectors/connect-dropbox/src/utils/config.ts +197 -0
- package/connectors/connect-dropbox/tsconfig.json +16 -0
- package/connectors/connect-fal/.env.example +11 -0
- package/connectors/connect-fal/CLAUDE.md +128 -0
- package/connectors/connect-fal/README.md +193 -0
- package/connectors/connect-fal/package.json +51 -0
- package/connectors/connect-fal/src/api/client.ts +172 -0
- package/connectors/connect-fal/src/api/index.ts +55 -0
- package/connectors/connect-fal/src/cli/index.ts +341 -0
- package/connectors/connect-fal/src/index.ts +19 -0
- package/connectors/connect-fal/src/types/index.ts +135 -0
- package/connectors/connect-fal/src/utils/config.ts +103 -0
- package/connectors/connect-fal/src/utils/output.ts +119 -0
- package/connectors/connect-fal/tsconfig.json +16 -0
- package/connectors/connect-fireworks/.env.example +11 -0
- package/connectors/connect-fireworks/CLAUDE.md +128 -0
- package/connectors/connect-fireworks/README.md +193 -0
- package/connectors/connect-fireworks/package.json +51 -0
- package/connectors/connect-fireworks/src/api/client.ts +63 -0
- package/connectors/connect-fireworks/src/api/index.ts +36 -0
- package/connectors/connect-fireworks/src/cli/index.ts +244 -0
- package/connectors/connect-fireworks/src/index.ts +19 -0
- package/connectors/connect-fireworks/src/types/index.ts +70 -0
- package/connectors/connect-fireworks/src/utils/config.ts +103 -0
- package/connectors/connect-fireworks/src/utils/output.ts +119 -0
- package/connectors/connect-fireworks/tsconfig.json +16 -0
- package/connectors/connect-groq/.env.example +11 -0
- package/connectors/connect-groq/CLAUDE.md +128 -0
- package/connectors/connect-groq/README.md +193 -0
- package/connectors/connect-groq/package.json +52 -0
- package/connectors/connect-groq/src/api/client.ts +108 -0
- package/connectors/connect-groq/src/api/index.ts +36 -0
- package/connectors/connect-groq/src/cli/index.ts +171 -0
- package/connectors/connect-groq/src/index.ts +19 -0
- package/connectors/connect-groq/src/types/index.ts +69 -0
- package/connectors/connect-groq/src/utils/config.ts +103 -0
- package/connectors/connect-groq/src/utils/output.ts +119 -0
- package/connectors/connect-groq/tsconfig.json +16 -0
- package/connectors/connect-linode/.env.example +11 -0
- package/connectors/connect-linode/CLAUDE.md +272 -0
- package/connectors/connect-linode/README.md +193 -0
- package/connectors/connect-linode/package.json +51 -0
- package/connectors/connect-linode/scripts/release.ts +179 -0
- package/connectors/connect-linode/src/api/client.ts +213 -0
- package/connectors/connect-linode/src/api/example.ts +48 -0
- package/connectors/connect-linode/src/api/index.ts +51 -0
- package/connectors/connect-linode/src/cli/index.ts +254 -0
- package/connectors/connect-linode/src/index.ts +103 -0
- package/connectors/connect-linode/src/types/index.ts +237 -0
- package/connectors/connect-linode/src/utils/auth.ts +274 -0
- package/connectors/connect-linode/src/utils/bulk.ts +212 -0
- package/connectors/connect-linode/src/utils/config.ts +326 -0
- package/connectors/connect-linode/src/utils/output.ts +175 -0
- package/connectors/connect-linode/src/utils/settings.ts +114 -0
- package/connectors/connect-linode/src/utils/storage.ts +198 -0
- package/connectors/connect-linode/tsconfig.json +16 -0
- package/connectors/connect-luma/.env.example +11 -0
- package/connectors/connect-luma/CLAUDE.md +128 -0
- package/connectors/connect-luma/README.md +193 -0
- package/connectors/connect-luma/package.json +53 -0
- package/connectors/connect-luma/src/api/client.ts +85 -0
- package/connectors/connect-luma/src/api/index.ts +44 -0
- package/connectors/connect-luma/src/cli/index.ts +300 -0
- package/connectors/connect-luma/src/index.ts +19 -0
- package/connectors/connect-luma/src/types/index.ts +60 -0
- package/connectors/connect-luma/src/utils/config.ts +103 -0
- package/connectors/connect-luma/src/utils/output.ts +119 -0
- package/connectors/connect-luma/tsconfig.json +16 -0
- package/connectors/connect-mailgun/.env.example +11 -0
- package/connectors/connect-mailgun/CLAUDE.md +272 -0
- package/connectors/connect-mailgun/README.md +193 -0
- package/connectors/connect-mailgun/package.json +51 -0
- package/connectors/connect-mailgun/scripts/release.ts +179 -0
- package/connectors/connect-mailgun/src/api/client.ts +213 -0
- package/connectors/connect-mailgun/src/api/example.ts +48 -0
- package/connectors/connect-mailgun/src/api/index.ts +51 -0
- package/connectors/connect-mailgun/src/cli/index.ts +254 -0
- package/connectors/connect-mailgun/src/index.ts +103 -0
- package/connectors/connect-mailgun/src/types/index.ts +237 -0
- package/connectors/connect-mailgun/src/utils/auth.ts +274 -0
- package/connectors/connect-mailgun/src/utils/bulk.ts +212 -0
- package/connectors/connect-mailgun/src/utils/config.ts +326 -0
- package/connectors/connect-mailgun/src/utils/output.ts +175 -0
- package/connectors/connect-mailgun/src/utils/settings.ts +114 -0
- package/connectors/connect-mailgun/src/utils/storage.ts +198 -0
- package/connectors/connect-mailgun/tsconfig.json +16 -0
- package/connectors/connect-messagebird/.env.example +11 -0
- package/connectors/connect-messagebird/CLAUDE.md +272 -0
- package/connectors/connect-messagebird/README.md +193 -0
- package/connectors/connect-messagebird/package.json +51 -0
- package/connectors/connect-messagebird/scripts/release.ts +179 -0
- package/connectors/connect-messagebird/src/api/client.ts +213 -0
- package/connectors/connect-messagebird/src/api/example.ts +48 -0
- package/connectors/connect-messagebird/src/api/index.ts +51 -0
- package/connectors/connect-messagebird/src/cli/index.ts +254 -0
- package/connectors/connect-messagebird/src/index.ts +103 -0
- package/connectors/connect-messagebird/src/types/index.ts +237 -0
- package/connectors/connect-messagebird/src/utils/auth.ts +274 -0
- package/connectors/connect-messagebird/src/utils/bulk.ts +212 -0
- package/connectors/connect-messagebird/src/utils/config.ts +326 -0
- package/connectors/connect-messagebird/src/utils/output.ts +175 -0
- package/connectors/connect-messagebird/src/utils/settings.ts +114 -0
- package/connectors/connect-messagebird/src/utils/storage.ts +198 -0
- package/connectors/connect-messagebird/tsconfig.json +16 -0
- package/connectors/connect-miro/.env.example +11 -0
- package/connectors/connect-miro/CLAUDE.md +272 -0
- package/connectors/connect-miro/README.md +193 -0
- package/connectors/connect-miro/package.json +51 -0
- package/connectors/connect-miro/scripts/release.ts +179 -0
- package/connectors/connect-miro/src/api/client.ts +213 -0
- package/connectors/connect-miro/src/api/example.ts +48 -0
- package/connectors/connect-miro/src/api/index.ts +51 -0
- package/connectors/connect-miro/src/cli/index.ts +254 -0
- package/connectors/connect-miro/src/index.ts +103 -0
- package/connectors/connect-miro/src/types/index.ts +237 -0
- package/connectors/connect-miro/src/utils/auth.ts +274 -0
- package/connectors/connect-miro/src/utils/bulk.ts +212 -0
- package/connectors/connect-miro/src/utils/config.ts +326 -0
- package/connectors/connect-miro/src/utils/output.ts +175 -0
- package/connectors/connect-miro/src/utils/settings.ts +114 -0
- package/connectors/connect-miro/src/utils/storage.ts +198 -0
- package/connectors/connect-miro/tsconfig.json +16 -0
- package/connectors/connect-modal/.env.example +11 -0
- package/connectors/connect-modal/CLAUDE.md +128 -0
- package/connectors/connect-modal/README.md +193 -0
- package/connectors/connect-modal/package.json +51 -0
- package/connectors/connect-modal/src/api/client.ts +119 -0
- package/connectors/connect-modal/src/api/index.ts +69 -0
- package/connectors/connect-modal/src/cli/index.ts +224 -0
- package/connectors/connect-modal/src/index.ts +21 -0
- package/connectors/connect-modal/src/types/index.ts +60 -0
- package/connectors/connect-modal/src/utils/config.ts +114 -0
- package/connectors/connect-modal/src/utils/output.ts +119 -0
- package/connectors/connect-modal/tsconfig.json +16 -0
- package/connectors/connect-monday/.env.example +11 -0
- package/connectors/connect-monday/CLAUDE.md +128 -0
- package/connectors/connect-monday/README.md +193 -0
- package/connectors/connect-monday/package.json +52 -0
- package/connectors/connect-monday/src/api/client.ts +59 -0
- package/connectors/connect-monday/src/api/index.ts +539 -0
- package/connectors/connect-monday/src/cli/index.ts +479 -0
- package/connectors/connect-monday/src/index.ts +19 -0
- package/connectors/connect-monday/src/types/index.ts +274 -0
- package/connectors/connect-monday/src/utils/config.ts +197 -0
- package/connectors/connect-monday/src/utils/output.ts +119 -0
- package/connectors/connect-monday/tsconfig.json +16 -0
- package/connectors/connect-perplexity/.env.example +4 -0
- package/connectors/connect-perplexity/CLAUDE.md +156 -0
- package/connectors/connect-perplexity/README.md +184 -0
- package/connectors/connect-perplexity/package.json +58 -0
- package/connectors/connect-perplexity/scripts/publish.ts +210 -0
- package/connectors/connect-perplexity/src/api/client.ts +119 -0
- package/connectors/connect-perplexity/src/api/example.ts +118 -0
- package/connectors/connect-perplexity/src/api/index.ts +48 -0
- package/connectors/connect-perplexity/src/cli/index.ts +421 -0
- package/connectors/connect-perplexity/src/index.ts +24 -0
- package/connectors/connect-perplexity/src/types/index.ts +140 -0
- package/connectors/connect-perplexity/src/utils/config.ts +208 -0
- package/connectors/connect-perplexity/src/utils/output.ts +119 -0
- package/connectors/connect-perplexity/tsconfig.json +16 -0
- package/connectors/connect-pipedrive/.env.example +11 -0
- package/connectors/connect-pipedrive/CLAUDE.md +128 -0
- package/connectors/connect-pipedrive/README.md +193 -0
- package/connectors/connect-pipedrive/package.json +52 -0
- package/connectors/connect-pipedrive/src/api/client.ts +121 -0
- package/connectors/connect-pipedrive/src/api/index.ts +306 -0
- package/connectors/connect-pipedrive/src/cli/index.ts +824 -0
- package/connectors/connect-pipedrive/src/index.ts +19 -0
- package/connectors/connect-pipedrive/src/types/index.ts +335 -0
- package/connectors/connect-pipedrive/src/utils/config.ts +171 -0
- package/connectors/connect-pipedrive/src/utils/output.ts +119 -0
- package/connectors/connect-pipedrive/tsconfig.json +16 -0
- package/connectors/connect-pusher/.env.example +11 -0
- package/connectors/connect-pusher/CLAUDE.md +272 -0
- package/connectors/connect-pusher/README.md +193 -0
- package/connectors/connect-pusher/package.json +51 -0
- package/connectors/connect-pusher/scripts/release.ts +179 -0
- package/connectors/connect-pusher/src/api/client.ts +213 -0
- package/connectors/connect-pusher/src/api/example.ts +48 -0
- package/connectors/connect-pusher/src/api/index.ts +51 -0
- package/connectors/connect-pusher/src/cli/index.ts +254 -0
- package/connectors/connect-pusher/src/index.ts +103 -0
- package/connectors/connect-pusher/src/types/index.ts +237 -0
- package/connectors/connect-pusher/src/utils/auth.ts +274 -0
- package/connectors/connect-pusher/src/utils/bulk.ts +212 -0
- package/connectors/connect-pusher/src/utils/config.ts +326 -0
- package/connectors/connect-pusher/src/utils/output.ts +175 -0
- package/connectors/connect-pusher/src/utils/settings.ts +114 -0
- package/connectors/connect-pusher/src/utils/storage.ts +198 -0
- package/connectors/connect-pusher/tsconfig.json +16 -0
- package/connectors/connect-replicate/.env.example +11 -0
- package/connectors/connect-replicate/CLAUDE.md +128 -0
- package/connectors/connect-replicate/README.md +193 -0
- package/connectors/connect-replicate/package.json +51 -0
- package/connectors/connect-replicate/src/api/client.ts +109 -0
- package/connectors/connect-replicate/src/api/index.ts +71 -0
- package/connectors/connect-replicate/src/cli/index.ts +250 -0
- package/connectors/connect-replicate/src/index.ts +19 -0
- package/connectors/connect-replicate/src/types/index.ts +85 -0
- package/connectors/connect-replicate/src/utils/config.ts +103 -0
- package/connectors/connect-replicate/src/utils/output.ts +119 -0
- package/connectors/connect-replicate/tsconfig.json +16 -0
- package/connectors/connect-roboflow/.env.example +11 -0
- package/connectors/connect-roboflow/CLAUDE.md +272 -0
- package/connectors/connect-roboflow/README.md +193 -0
- package/connectors/connect-roboflow/package.json +51 -0
- package/connectors/connect-roboflow/scripts/release.ts +179 -0
- package/connectors/connect-roboflow/src/api/client.ts +213 -0
- package/connectors/connect-roboflow/src/api/example.ts +48 -0
- package/connectors/connect-roboflow/src/api/index.ts +51 -0
- package/connectors/connect-roboflow/src/cli/index.ts +254 -0
- package/connectors/connect-roboflow/src/index.ts +103 -0
- package/connectors/connect-roboflow/src/types/index.ts +237 -0
- package/connectors/connect-roboflow/src/utils/auth.ts +274 -0
- package/connectors/connect-roboflow/src/utils/bulk.ts +212 -0
- package/connectors/connect-roboflow/src/utils/config.ts +326 -0
- package/connectors/connect-roboflow/src/utils/output.ts +175 -0
- package/connectors/connect-roboflow/src/utils/settings.ts +114 -0
- package/connectors/connect-roboflow/src/utils/storage.ts +198 -0
- package/connectors/connect-roboflow/tsconfig.json +16 -0
- package/connectors/connect-runway/.env.example +11 -0
- package/connectors/connect-runway/CLAUDE.md +128 -0
- package/connectors/connect-runway/README.md +193 -0
- package/connectors/connect-runway/package.json +52 -0
- package/connectors/connect-runway/src/api/client.ts +78 -0
- package/connectors/connect-runway/src/api/index.ts +40 -0
- package/connectors/connect-runway/src/cli/index.ts +283 -0
- package/connectors/connect-runway/src/index.ts +19 -0
- package/connectors/connect-runway/src/types/index.ts +52 -0
- package/connectors/connect-runway/src/utils/config.ts +103 -0
- package/connectors/connect-runway/src/utils/output.ts +119 -0
- package/connectors/connect-runway/tsconfig.json +16 -0
- package/connectors/connect-together/.env.example +11 -0
- package/connectors/connect-together/CLAUDE.md +128 -0
- package/connectors/connect-together/README.md +193 -0
- package/connectors/connect-together/package.json +52 -0
- package/connectors/connect-together/src/api/client.ts +106 -0
- package/connectors/connect-together/src/api/index.ts +47 -0
- package/connectors/connect-together/src/cli/index.ts +228 -0
- package/connectors/connect-together/src/index.ts +19 -0
- package/connectors/connect-together/src/types/index.ts +91 -0
- package/connectors/connect-together/src/utils/config.ts +142 -0
- package/connectors/connect-together/src/utils/output.ts +119 -0
- package/connectors/connect-together/tsconfig.json +16 -0
- package/connectors/connect-vonage/.env.example +11 -0
- package/connectors/connect-vonage/CLAUDE.md +272 -0
- package/connectors/connect-vonage/README.md +193 -0
- package/connectors/connect-vonage/package.json +51 -0
- package/connectors/connect-vonage/scripts/release.ts +179 -0
- package/connectors/connect-vonage/src/api/client.ts +213 -0
- package/connectors/connect-vonage/src/api/example.ts +48 -0
- package/connectors/connect-vonage/src/api/index.ts +51 -0
- package/connectors/connect-vonage/src/cli/index.ts +254 -0
- package/connectors/connect-vonage/src/index.ts +103 -0
- package/connectors/connect-vonage/src/types/index.ts +237 -0
- package/connectors/connect-vonage/src/utils/auth.ts +274 -0
- package/connectors/connect-vonage/src/utils/bulk.ts +212 -0
- package/connectors/connect-vonage/src/utils/config.ts +326 -0
- package/connectors/connect-vonage/src/utils/output.ts +175 -0
- package/connectors/connect-vonage/src/utils/settings.ts +114 -0
- package/connectors/connect-vonage/src/utils/storage.ts +198 -0
- package/connectors/connect-vonage/tsconfig.json +16 -0
- package/dist/index.js +203 -0
- package/package.json +1 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
connect-perplexity is a TypeScript CLI and library for Perplexity AI's API. It provides chat completions with web search grounding, supporting multiple Sonar models with citation tracking.
|
|
8
|
+
|
|
9
|
+
## Build & Run Commands
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Install dependencies
|
|
13
|
+
bun install
|
|
14
|
+
|
|
15
|
+
# Run CLI in development
|
|
16
|
+
bun run dev
|
|
17
|
+
|
|
18
|
+
# Build for distribution
|
|
19
|
+
bun run build
|
|
20
|
+
|
|
21
|
+
# Type check
|
|
22
|
+
bun run typecheck
|
|
23
|
+
|
|
24
|
+
# Example commands
|
|
25
|
+
bun run dev ask "What is AI?"
|
|
26
|
+
bun run dev chat search "latest news"
|
|
27
|
+
bun run dev models
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Code Style
|
|
31
|
+
|
|
32
|
+
- TypeScript with strict mode
|
|
33
|
+
- ESM modules (type: module)
|
|
34
|
+
- Use async/await for all async operations
|
|
35
|
+
- Minimal dependencies: commander, chalk only
|
|
36
|
+
- Type annotations required everywhere
|
|
37
|
+
- Use interfaces for all API types
|
|
38
|
+
|
|
39
|
+
## Project Structure
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
src/
|
|
43
|
+
├── api/
|
|
44
|
+
│ ├── client.ts # HTTP client for Perplexity API
|
|
45
|
+
│ ├── example.ts # ChatApi - chat completions
|
|
46
|
+
│ └── index.ts # Main Perplexity class
|
|
47
|
+
├── cli/
|
|
48
|
+
│ └── index.ts # CLI commands (ask, search, chat, config, profile)
|
|
49
|
+
├── types/
|
|
50
|
+
│ └── index.ts # Perplexity API types
|
|
51
|
+
├── utils/
|
|
52
|
+
│ ├── config.ts # Multi-profile configuration
|
|
53
|
+
│ └── output.ts # CLI output formatting
|
|
54
|
+
└── index.ts # Library exports
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Key Types
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// Models available
|
|
61
|
+
type PerplexityModel =
|
|
62
|
+
| 'sonar'
|
|
63
|
+
| 'sonar-pro'
|
|
64
|
+
| 'sonar-reasoning'
|
|
65
|
+
| 'sonar-reasoning-pro'
|
|
66
|
+
| 'sonar-deep-research';
|
|
67
|
+
|
|
68
|
+
// Chat message structure
|
|
69
|
+
interface ChatMessage {
|
|
70
|
+
role: 'system' | 'user' | 'assistant';
|
|
71
|
+
content: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Response includes citations
|
|
75
|
+
interface ChatCompletionResponse {
|
|
76
|
+
choices: ChatCompletionChoice[];
|
|
77
|
+
usage: ChatCompletionUsage;
|
|
78
|
+
citations?: string[]; // Source URLs
|
|
79
|
+
search_results?: SearchResult[];
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## API Patterns
|
|
84
|
+
|
|
85
|
+
### ChatApi Methods
|
|
86
|
+
|
|
87
|
+
- `create(messages, options)` - Full chat completion with message history
|
|
88
|
+
- `ask(question, options)` - Simple question/answer
|
|
89
|
+
- `search(query, options)` - Web search with answer
|
|
90
|
+
- `research(topic, options)` - Deep research (uses sonar-deep-research)
|
|
91
|
+
- `reason(prompt, options)` - Reasoning task (uses sonar-reasoning-pro)
|
|
92
|
+
|
|
93
|
+
### Options
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
interface ChatOptions {
|
|
97
|
+
model?: PerplexityModel;
|
|
98
|
+
maxTokens?: number;
|
|
99
|
+
temperature?: number;
|
|
100
|
+
searchRecencyFilter?: 'month' | 'week' | 'day' | 'hour';
|
|
101
|
+
systemPrompt?: string;
|
|
102
|
+
// ...more
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Environment Variables
|
|
107
|
+
|
|
108
|
+
| Variable | Description |
|
|
109
|
+
|----------|-------------|
|
|
110
|
+
| `PERPLEXITY_API_KEY` | API key (overrides profile) |
|
|
111
|
+
|
|
112
|
+
## Data Storage
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
~/.connect/connect-perplexity/
|
|
116
|
+
├── current_profile # Active profile name
|
|
117
|
+
└── profiles/
|
|
118
|
+
├── default.json # Default profile
|
|
119
|
+
└── {name}.json # Named profiles
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Profile JSON:
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"apiKey": "pplx-xxx",
|
|
126
|
+
"defaultModel": "sonar-pro"
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## CLI Commands
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Quick commands
|
|
134
|
+
connect-perplexity ask <question>
|
|
135
|
+
connect-perplexity search <query>
|
|
136
|
+
connect-perplexity models
|
|
137
|
+
|
|
138
|
+
# Chat commands
|
|
139
|
+
connect-perplexity chat ask <question> [-m model] [-t temp] [--recency hour|day|week|month]
|
|
140
|
+
connect-perplexity chat search <query> [--recency]
|
|
141
|
+
connect-perplexity chat research <topic>
|
|
142
|
+
connect-perplexity chat reason <prompt>
|
|
143
|
+
|
|
144
|
+
# Config
|
|
145
|
+
connect-perplexity config set-key <key>
|
|
146
|
+
connect-perplexity config set-model <model>
|
|
147
|
+
connect-perplexity config show
|
|
148
|
+
|
|
149
|
+
# Profiles
|
|
150
|
+
connect-perplexity profile list|use|create|delete|show
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Dependencies
|
|
154
|
+
|
|
155
|
+
- commander: CLI framework
|
|
156
|
+
- chalk: Terminal styling
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# connect-perplexity
|
|
2
|
+
|
|
3
|
+
A TypeScript CLI and library for interacting with Perplexity AI's API. Chat completions with web search grounding.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Chat completions with web search grounding
|
|
8
|
+
- Multiple Sonar models (sonar, sonar-pro, sonar-reasoning, sonar-deep-research)
|
|
9
|
+
- Citations and source tracking
|
|
10
|
+
- Multi-profile configuration (switch between different API keys)
|
|
11
|
+
- Pretty and JSON output formats
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Install globally
|
|
17
|
+
bun add -g @hasna/connect-perplexity
|
|
18
|
+
|
|
19
|
+
# Or install locally
|
|
20
|
+
bun add @hasna/connect-perplexity
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Setup
|
|
24
|
+
|
|
25
|
+
### Get API Key
|
|
26
|
+
|
|
27
|
+
1. Go to [Perplexity AI Settings](https://www.perplexity.ai/settings/api)
|
|
28
|
+
2. Create an API key
|
|
29
|
+
3. Set it in the CLI:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
connect-perplexity config set-key pplx-xxxxx
|
|
33
|
+
|
|
34
|
+
# Or use environment variable
|
|
35
|
+
export PERPLEXITY_API_KEY=pplx-xxxxx
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## CLI Usage
|
|
39
|
+
|
|
40
|
+
### Quick Commands
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Ask a question
|
|
44
|
+
connect-perplexity ask "What is quantum computing?"
|
|
45
|
+
|
|
46
|
+
# Search the web
|
|
47
|
+
connect-perplexity search "latest AI news 2026"
|
|
48
|
+
|
|
49
|
+
# List available models
|
|
50
|
+
connect-perplexity models
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Chat Commands
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Ask with specific model
|
|
57
|
+
connect-perplexity chat ask "Explain neural networks" -m sonar-pro
|
|
58
|
+
|
|
59
|
+
# Search with recency filter
|
|
60
|
+
connect-perplexity chat search "Bitcoin price" --recency day
|
|
61
|
+
|
|
62
|
+
# Deep research on a topic
|
|
63
|
+
connect-perplexity chat research "Climate change solutions"
|
|
64
|
+
|
|
65
|
+
# Reasoning task
|
|
66
|
+
connect-perplexity chat reason "If all A are B, and all B are C, what can we conclude?"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Profile Management
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Create profiles for different API keys
|
|
73
|
+
connect-perplexity profile create work --api-key pplx-xxx --use
|
|
74
|
+
connect-perplexity profile create personal --api-key pplx-yyy
|
|
75
|
+
|
|
76
|
+
# Switch profiles
|
|
77
|
+
connect-perplexity profile use work
|
|
78
|
+
|
|
79
|
+
# Use profile for single command
|
|
80
|
+
connect-perplexity -p personal ask "Hello"
|
|
81
|
+
|
|
82
|
+
# List profiles
|
|
83
|
+
connect-perplexity profile list
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Configuration
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Set API key
|
|
90
|
+
connect-perplexity config set-key <key>
|
|
91
|
+
|
|
92
|
+
# Set default model
|
|
93
|
+
connect-perplexity config set-model sonar-pro
|
|
94
|
+
|
|
95
|
+
# Show configuration
|
|
96
|
+
connect-perplexity config show
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Library Usage
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
import { Perplexity } from '@hasna/connect-perplexity';
|
|
103
|
+
|
|
104
|
+
// Create client
|
|
105
|
+
const perplexity = new Perplexity({ apiKey: 'pplx-xxx' });
|
|
106
|
+
|
|
107
|
+
// Or from environment
|
|
108
|
+
const perplexity = Perplexity.fromEnv(); // Uses PERPLEXITY_API_KEY
|
|
109
|
+
|
|
110
|
+
// Ask a question
|
|
111
|
+
const response = await perplexity.chat.ask('What is quantum computing?');
|
|
112
|
+
console.log(response.choices[0].message.content);
|
|
113
|
+
|
|
114
|
+
// With options
|
|
115
|
+
const response = await perplexity.chat.ask('Explain AI', {
|
|
116
|
+
model: 'sonar-pro',
|
|
117
|
+
temperature: 0.7,
|
|
118
|
+
maxTokens: 1000,
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// Search the web
|
|
122
|
+
const search = await perplexity.chat.search('latest AI news');
|
|
123
|
+
console.log(search.citations); // Array of source URLs
|
|
124
|
+
|
|
125
|
+
// Deep research
|
|
126
|
+
const research = await perplexity.chat.research('Climate change impacts');
|
|
127
|
+
|
|
128
|
+
// Reasoning
|
|
129
|
+
const reason = await perplexity.chat.reason('Solve this logic puzzle...');
|
|
130
|
+
|
|
131
|
+
// Full chat with messages
|
|
132
|
+
const chat = await perplexity.chat.create([
|
|
133
|
+
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
134
|
+
{ role: 'user', content: 'Hello!' },
|
|
135
|
+
], { model: 'sonar' });
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Models
|
|
139
|
+
|
|
140
|
+
| Model | Description |
|
|
141
|
+
|-------|-------------|
|
|
142
|
+
| `sonar` | Standard model for general queries |
|
|
143
|
+
| `sonar-pro` | Enhanced model with better accuracy |
|
|
144
|
+
| `sonar-reasoning` | Optimized for reasoning tasks |
|
|
145
|
+
| `sonar-reasoning-pro` | Enhanced reasoning model |
|
|
146
|
+
| `sonar-deep-research` | Comprehensive research model |
|
|
147
|
+
|
|
148
|
+
## Environment Variables
|
|
149
|
+
|
|
150
|
+
| Variable | Description |
|
|
151
|
+
|----------|-------------|
|
|
152
|
+
| `PERPLEXITY_API_KEY` | API key (overrides profile config) |
|
|
153
|
+
|
|
154
|
+
## Data Storage
|
|
155
|
+
|
|
156
|
+
Configuration stored in `~/.connect/connect-perplexity/`:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
~/.connect/connect-perplexity/
|
|
160
|
+
├── current_profile # Active profile name
|
|
161
|
+
└── profiles/
|
|
162
|
+
├── default.json # Default profile
|
|
163
|
+
└── {name}.json # Named profiles
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Development
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Install dependencies
|
|
170
|
+
bun install
|
|
171
|
+
|
|
172
|
+
# Run CLI in development
|
|
173
|
+
bun run dev
|
|
174
|
+
|
|
175
|
+
# Build
|
|
176
|
+
bun run build
|
|
177
|
+
|
|
178
|
+
# Type check
|
|
179
|
+
bun run typecheck
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## License
|
|
183
|
+
|
|
184
|
+
MIT
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hasna/connect-perplexity",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Perplexity AI API connector CLI - Chat completions with web search grounding",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"connect-perplexity": "./bin/index.js"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun && bun build ./src/cli/index.ts --outdir ./bin --target bun",
|
|
19
|
+
"dev": "bun run ./src/cli/index.ts",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"prepublishOnly": "bun run build",
|
|
22
|
+
"release": "bun run ./scripts/publish.ts",
|
|
23
|
+
"release:patch": "bun run ./scripts/publish.ts patch",
|
|
24
|
+
"release:minor": "bun run ./scripts/publish.ts minor",
|
|
25
|
+
"release:major": "bun run ./scripts/publish.ts major",
|
|
26
|
+
"release:dry": "bun run ./scripts/publish.ts --dry-run"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"perplexity",
|
|
30
|
+
"ai",
|
|
31
|
+
"llm",
|
|
32
|
+
"chat",
|
|
33
|
+
"search",
|
|
34
|
+
"sonar",
|
|
35
|
+
"api",
|
|
36
|
+
"connector",
|
|
37
|
+
"cli",
|
|
38
|
+
"typescript",
|
|
39
|
+
"bun"
|
|
40
|
+
],
|
|
41
|
+
"author": "Hasna",
|
|
42
|
+
"license": "Apache-2.0",
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/bun": "latest",
|
|
45
|
+
"typescript": "^5"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"commander": "^12.1.0",
|
|
49
|
+
"chalk": "^5.3.0"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"bun": ">=1.0.0"
|
|
53
|
+
},
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "git+https://github.com/hasna/open-connectors.git"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* Auto-versioning publish script
|
|
4
|
+
* - Fetches current npm version
|
|
5
|
+
* - Auto-bumps patch version if local version <= npm version
|
|
6
|
+
* - Creates git tag
|
|
7
|
+
* - Publishes to npm
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { $ } from 'bun';
|
|
11
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
12
|
+
import { join } from 'path';
|
|
13
|
+
|
|
14
|
+
interface PackageJson {
|
|
15
|
+
name: string;
|
|
16
|
+
version: string;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
type BumpType = 'patch' | 'minor' | 'major';
|
|
21
|
+
|
|
22
|
+
function parseVersion(version: string): { major: number; minor: number; patch: number } {
|
|
23
|
+
const [major, minor, patch] = version.split('.').map(Number);
|
|
24
|
+
return { major, minor, patch };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function bumpVersion(version: string, type: BumpType = 'patch'): string {
|
|
28
|
+
const { major, minor, patch } = parseVersion(version);
|
|
29
|
+
|
|
30
|
+
switch (type) {
|
|
31
|
+
case 'major':
|
|
32
|
+
return `${major + 1}.0.0`;
|
|
33
|
+
case 'minor':
|
|
34
|
+
return `${major}.${minor + 1}.0`;
|
|
35
|
+
case 'patch':
|
|
36
|
+
default:
|
|
37
|
+
return `${major}.${minor}.${patch + 1}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function compareVersions(a: string, b: string): number {
|
|
42
|
+
const vA = parseVersion(a);
|
|
43
|
+
const vB = parseVersion(b);
|
|
44
|
+
|
|
45
|
+
if (vA.major !== vB.major) return vA.major - vB.major;
|
|
46
|
+
if (vA.minor !== vB.minor) return vA.minor - vB.minor;
|
|
47
|
+
return vA.patch - vB.patch;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function getNpmVersion(packageName: string): Promise<string | null> {
|
|
51
|
+
try {
|
|
52
|
+
const result = await $`npm view ${packageName} version 2>/dev/null`.text();
|
|
53
|
+
return result.trim() || null;
|
|
54
|
+
} catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async function hasUncommittedChanges(): Promise<boolean> {
|
|
60
|
+
try {
|
|
61
|
+
const result = await $`git status --porcelain`.text();
|
|
62
|
+
return result.trim().length > 0;
|
|
63
|
+
} catch {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async function isGitRepo(): Promise<boolean> {
|
|
69
|
+
try {
|
|
70
|
+
await $`git rev-parse --git-dir 2>/dev/null`.text();
|
|
71
|
+
return true;
|
|
72
|
+
} catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
async function createGitTag(version: string, packageName: string): Promise<boolean> {
|
|
78
|
+
const tagName = `${packageName}@${version}`;
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
// Check if tag already exists
|
|
82
|
+
const existingTags = await $`git tag -l ${tagName}`.text();
|
|
83
|
+
if (existingTags.trim()) {
|
|
84
|
+
console.log(`⚠️ Tag ${tagName} already exists, skipping tag creation`);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
await $`git tag -a ${tagName} -m "Release ${tagName}"`;
|
|
89
|
+
console.log(`✅ Created git tag: ${tagName}`);
|
|
90
|
+
return true;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.error(`❌ Failed to create git tag: ${error}`);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async function commitVersionBump(version: string, packageName: string): Promise<boolean> {
|
|
98
|
+
try {
|
|
99
|
+
await $`git add package.json`;
|
|
100
|
+
await $`git commit -m "chore(${packageName}): bump version to ${version}"`;
|
|
101
|
+
console.log(`✅ Committed version bump`);
|
|
102
|
+
return true;
|
|
103
|
+
} catch (error) {
|
|
104
|
+
console.error(`❌ Failed to commit: ${error}`);
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async function main() {
|
|
110
|
+
const args = process.argv.slice(2);
|
|
111
|
+
const bumpType = (args.find(a => ['patch', 'minor', 'major'].includes(a)) || 'patch') as BumpType;
|
|
112
|
+
const skipGit = args.includes('--skip-git');
|
|
113
|
+
const dryRun = args.includes('--dry-run');
|
|
114
|
+
const force = args.includes('--force');
|
|
115
|
+
|
|
116
|
+
// Read package.json
|
|
117
|
+
const pkgPath = join(process.cwd(), 'package.json');
|
|
118
|
+
const pkg: PackageJson = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
119
|
+
|
|
120
|
+
console.log(`\n📦 Publishing ${pkg.name}\n`);
|
|
121
|
+
|
|
122
|
+
// Get current npm version
|
|
123
|
+
const npmVersion = await getNpmVersion(pkg.name);
|
|
124
|
+
let newVersion = pkg.version;
|
|
125
|
+
|
|
126
|
+
if (npmVersion) {
|
|
127
|
+
console.log(`📌 Current npm version: ${npmVersion}`);
|
|
128
|
+
console.log(`📌 Local version: ${pkg.version}`);
|
|
129
|
+
|
|
130
|
+
// Check if we need to bump
|
|
131
|
+
if (compareVersions(pkg.version, npmVersion) <= 0) {
|
|
132
|
+
newVersion = bumpVersion(npmVersion, bumpType);
|
|
133
|
+
console.log(`🔄 Auto-bumping to: ${newVersion}`);
|
|
134
|
+
} else {
|
|
135
|
+
console.log(`✅ Local version is ahead, using: ${pkg.version}`);
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
console.log(`📌 Package not yet published to npm`);
|
|
139
|
+
console.log(`📌 Using local version: ${pkg.version}`);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Update package.json if version changed
|
|
143
|
+
if (newVersion !== pkg.version) {
|
|
144
|
+
if (dryRun) {
|
|
145
|
+
console.log(`\n🧪 DRY RUN: Would update version to ${newVersion}`);
|
|
146
|
+
} else {
|
|
147
|
+
pkg.version = newVersion;
|
|
148
|
+
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
|
|
149
|
+
console.log(`✅ Updated package.json to version ${newVersion}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Git operations
|
|
154
|
+
const isGit = await isGitRepo();
|
|
155
|
+
|
|
156
|
+
if (isGit && !skipGit) {
|
|
157
|
+
const hasChanges = await hasUncommittedChanges();
|
|
158
|
+
|
|
159
|
+
if (hasChanges && newVersion !== pkg.version) {
|
|
160
|
+
if (dryRun) {
|
|
161
|
+
console.log(`🧪 DRY RUN: Would commit version bump`);
|
|
162
|
+
} else {
|
|
163
|
+
await commitVersionBump(newVersion, pkg.name.replace('@hasna/', ''));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (dryRun) {
|
|
168
|
+
console.log(`🧪 DRY RUN: Would create tag ${pkg.name}@${newVersion}`);
|
|
169
|
+
} else {
|
|
170
|
+
await createGitTag(newVersion, pkg.name.replace('@hasna/', ''));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Build
|
|
175
|
+
console.log(`\n🔨 Building...`);
|
|
176
|
+
if (!dryRun) {
|
|
177
|
+
await $`bun run build`;
|
|
178
|
+
} else {
|
|
179
|
+
console.log(`🧪 DRY RUN: Would run build`);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Publish
|
|
183
|
+
console.log(`\n🚀 Publishing to npm...`);
|
|
184
|
+
if (dryRun) {
|
|
185
|
+
console.log(`🧪 DRY RUN: Would publish ${pkg.name}@${newVersion}`);
|
|
186
|
+
} else {
|
|
187
|
+
try {
|
|
188
|
+
await $`npm publish`;
|
|
189
|
+
console.log(`\n✅ Successfully published ${pkg.name}@${newVersion}`);
|
|
190
|
+
} catch (error) {
|
|
191
|
+
console.error(`\n❌ Publish failed: ${error}`);
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Push tags
|
|
197
|
+
if (isGit && !skipGit && !dryRun) {
|
|
198
|
+
console.log(`\n📤 Pushing tags to remote...`);
|
|
199
|
+
try {
|
|
200
|
+
await $`git push --tags`;
|
|
201
|
+
console.log(`✅ Pushed tags to remote`);
|
|
202
|
+
} catch {
|
|
203
|
+
console.log(`⚠️ Could not push tags (no remote or not configured)`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
console.log(`\n✨ Done!\n`);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
main().catch(console.error);
|