@hasna/connectors 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/bin/index.js +189 -2
  2. package/bin/mcp.js +176 -1
  3. package/bin/serve.js +175 -0
  4. package/connectors/connect-airtable/.env.example +11 -0
  5. package/connectors/connect-airtable/CLAUDE.md +121 -0
  6. package/connectors/connect-airtable/README.md +193 -0
  7. package/connectors/connect-airtable/package.json +50 -0
  8. package/connectors/connect-airtable/src/api/client.ts +139 -0
  9. package/connectors/connect-airtable/src/api/index.ts +405 -0
  10. package/connectors/connect-airtable/src/cli/index.ts +637 -0
  11. package/connectors/connect-airtable/src/index.ts +20 -0
  12. package/connectors/connect-airtable/src/types/index.ts +349 -0
  13. package/connectors/connect-airtable/src/utils/config.ts +197 -0
  14. package/connectors/connect-airtable/tsconfig.json +16 -0
  15. package/connectors/connect-amplitude/.env.example +11 -0
  16. package/connectors/connect-amplitude/CLAUDE.md +121 -0
  17. package/connectors/connect-amplitude/README.md +193 -0
  18. package/connectors/connect-amplitude/package.json +51 -0
  19. package/connectors/connect-amplitude/src/api/client.ts +144 -0
  20. package/connectors/connect-amplitude/src/api/index.ts +215 -0
  21. package/connectors/connect-amplitude/src/cli/index.ts +532 -0
  22. package/connectors/connect-amplitude/src/index.ts +22 -0
  23. package/connectors/connect-amplitude/src/types/index.ts +329 -0
  24. package/connectors/connect-amplitude/src/utils/config.ts +208 -0
  25. package/connectors/connect-amplitude/tsconfig.json +16 -0
  26. package/connectors/connect-calendly/.env.example +11 -0
  27. package/connectors/connect-calendly/CLAUDE.md +272 -0
  28. package/connectors/connect-calendly/README.md +193 -0
  29. package/connectors/connect-calendly/package.json +51 -0
  30. package/connectors/connect-calendly/scripts/release.ts +179 -0
  31. package/connectors/connect-calendly/src/api/client.ts +213 -0
  32. package/connectors/connect-calendly/src/api/example.ts +48 -0
  33. package/connectors/connect-calendly/src/api/index.ts +51 -0
  34. package/connectors/connect-calendly/src/cli/index.ts +254 -0
  35. package/connectors/connect-calendly/src/index.ts +103 -0
  36. package/connectors/connect-calendly/src/types/index.ts +237 -0
  37. package/connectors/connect-calendly/src/utils/auth.ts +274 -0
  38. package/connectors/connect-calendly/src/utils/bulk.ts +212 -0
  39. package/connectors/connect-calendly/src/utils/config.ts +326 -0
  40. package/connectors/connect-calendly/src/utils/output.ts +175 -0
  41. package/connectors/connect-calendly/src/utils/settings.ts +114 -0
  42. package/connectors/connect-calendly/src/utils/storage.ts +198 -0
  43. package/connectors/connect-calendly/tsconfig.json +16 -0
  44. package/connectors/connect-convertkit/.env.example +11 -0
  45. package/connectors/connect-convertkit/CLAUDE.md +272 -0
  46. package/connectors/connect-convertkit/README.md +193 -0
  47. package/connectors/connect-convertkit/package.json +51 -0
  48. package/connectors/connect-convertkit/scripts/release.ts +179 -0
  49. package/connectors/connect-convertkit/src/api/client.ts +213 -0
  50. package/connectors/connect-convertkit/src/api/example.ts +48 -0
  51. package/connectors/connect-convertkit/src/api/index.ts +51 -0
  52. package/connectors/connect-convertkit/src/cli/index.ts +254 -0
  53. package/connectors/connect-convertkit/src/index.ts +103 -0
  54. package/connectors/connect-convertkit/src/types/index.ts +237 -0
  55. package/connectors/connect-convertkit/src/utils/auth.ts +274 -0
  56. package/connectors/connect-convertkit/src/utils/bulk.ts +212 -0
  57. package/connectors/connect-convertkit/src/utils/config.ts +326 -0
  58. package/connectors/connect-convertkit/src/utils/output.ts +175 -0
  59. package/connectors/connect-convertkit/src/utils/settings.ts +114 -0
  60. package/connectors/connect-convertkit/src/utils/storage.ts +198 -0
  61. package/connectors/connect-convertkit/tsconfig.json +16 -0
  62. package/connectors/connect-crisp/.env.example +11 -0
  63. package/connectors/connect-crisp/CLAUDE.md +272 -0
  64. package/connectors/connect-crisp/README.md +193 -0
  65. package/connectors/connect-crisp/package.json +51 -0
  66. package/connectors/connect-crisp/scripts/release.ts +179 -0
  67. package/connectors/connect-crisp/src/api/client.ts +213 -0
  68. package/connectors/connect-crisp/src/api/example.ts +48 -0
  69. package/connectors/connect-crisp/src/api/index.ts +51 -0
  70. package/connectors/connect-crisp/src/cli/index.ts +254 -0
  71. package/connectors/connect-crisp/src/index.ts +103 -0
  72. package/connectors/connect-crisp/src/types/index.ts +237 -0
  73. package/connectors/connect-crisp/src/utils/auth.ts +274 -0
  74. package/connectors/connect-crisp/src/utils/bulk.ts +212 -0
  75. package/connectors/connect-crisp/src/utils/config.ts +326 -0
  76. package/connectors/connect-crisp/src/utils/output.ts +175 -0
  77. package/connectors/connect-crisp/src/utils/settings.ts +114 -0
  78. package/connectors/connect-crisp/src/utils/storage.ts +198 -0
  79. package/connectors/connect-crisp/tsconfig.json +16 -0
  80. package/connectors/connect-docusign/.env.example +11 -0
  81. package/connectors/connect-docusign/CLAUDE.md +128 -0
  82. package/connectors/connect-docusign/README.md +193 -0
  83. package/connectors/connect-docusign/package.json +52 -0
  84. package/connectors/connect-docusign/src/api/client.ts +133 -0
  85. package/connectors/connect-docusign/src/api/index.ts +178 -0
  86. package/connectors/connect-docusign/src/cli/index.ts +381 -0
  87. package/connectors/connect-docusign/src/index.ts +23 -0
  88. package/connectors/connect-docusign/src/types/index.ts +208 -0
  89. package/connectors/connect-docusign/src/utils/config.ts +125 -0
  90. package/connectors/connect-docusign/src/utils/output.ts +119 -0
  91. package/connectors/connect-docusign/tsconfig.json +16 -0
  92. package/connectors/connect-drift/.env.example +11 -0
  93. package/connectors/connect-drift/CLAUDE.md +272 -0
  94. package/connectors/connect-drift/README.md +193 -0
  95. package/connectors/connect-drift/package.json +51 -0
  96. package/connectors/connect-drift/scripts/release.ts +179 -0
  97. package/connectors/connect-drift/src/api/client.ts +213 -0
  98. package/connectors/connect-drift/src/api/example.ts +48 -0
  99. package/connectors/connect-drift/src/api/index.ts +51 -0
  100. package/connectors/connect-drift/src/cli/index.ts +254 -0
  101. package/connectors/connect-drift/src/index.ts +103 -0
  102. package/connectors/connect-drift/src/types/index.ts +237 -0
  103. package/connectors/connect-drift/src/utils/auth.ts +274 -0
  104. package/connectors/connect-drift/src/utils/bulk.ts +212 -0
  105. package/connectors/connect-drift/src/utils/config.ts +326 -0
  106. package/connectors/connect-drift/src/utils/output.ts +175 -0
  107. package/connectors/connect-drift/src/utils/settings.ts +114 -0
  108. package/connectors/connect-drift/src/utils/storage.ts +198 -0
  109. package/connectors/connect-drift/tsconfig.json +16 -0
  110. package/connectors/connect-freshdesk/.env.example +11 -0
  111. package/connectors/connect-freshdesk/CLAUDE.md +272 -0
  112. package/connectors/connect-freshdesk/README.md +193 -0
  113. package/connectors/connect-freshdesk/package.json +51 -0
  114. package/connectors/connect-freshdesk/scripts/release.ts +179 -0
  115. package/connectors/connect-freshdesk/src/api/client.ts +213 -0
  116. package/connectors/connect-freshdesk/src/api/example.ts +48 -0
  117. package/connectors/connect-freshdesk/src/api/index.ts +51 -0
  118. package/connectors/connect-freshdesk/src/cli/index.ts +254 -0
  119. package/connectors/connect-freshdesk/src/index.ts +103 -0
  120. package/connectors/connect-freshdesk/src/types/index.ts +237 -0
  121. package/connectors/connect-freshdesk/src/utils/auth.ts +274 -0
  122. package/connectors/connect-freshdesk/src/utils/bulk.ts +212 -0
  123. package/connectors/connect-freshdesk/src/utils/config.ts +326 -0
  124. package/connectors/connect-freshdesk/src/utils/output.ts +175 -0
  125. package/connectors/connect-freshdesk/src/utils/settings.ts +114 -0
  126. package/connectors/connect-freshdesk/src/utils/storage.ts +198 -0
  127. package/connectors/connect-freshdesk/tsconfig.json +16 -0
  128. package/connectors/connect-gumroad/.env.example +11 -0
  129. package/connectors/connect-gumroad/CLAUDE.md +272 -0
  130. package/connectors/connect-gumroad/README.md +193 -0
  131. package/connectors/connect-gumroad/package.json +51 -0
  132. package/connectors/connect-gumroad/scripts/release.ts +179 -0
  133. package/connectors/connect-gumroad/src/api/client.ts +213 -0
  134. package/connectors/connect-gumroad/src/api/example.ts +48 -0
  135. package/connectors/connect-gumroad/src/api/index.ts +51 -0
  136. package/connectors/connect-gumroad/src/cli/index.ts +254 -0
  137. package/connectors/connect-gumroad/src/index.ts +103 -0
  138. package/connectors/connect-gumroad/src/types/index.ts +237 -0
  139. package/connectors/connect-gumroad/src/utils/auth.ts +274 -0
  140. package/connectors/connect-gumroad/src/utils/bulk.ts +212 -0
  141. package/connectors/connect-gumroad/src/utils/config.ts +326 -0
  142. package/connectors/connect-gumroad/src/utils/output.ts +175 -0
  143. package/connectors/connect-gumroad/src/utils/settings.ts +114 -0
  144. package/connectors/connect-gumroad/src/utils/storage.ts +198 -0
  145. package/connectors/connect-gumroad/tsconfig.json +16 -0
  146. package/connectors/connect-hubspot/.env.example +11 -0
  147. package/connectors/connect-hubspot/CLAUDE.md +128 -0
  148. package/connectors/connect-hubspot/README.md +193 -0
  149. package/connectors/connect-hubspot/package.json +52 -0
  150. package/connectors/connect-hubspot/src/api/client.ts +136 -0
  151. package/connectors/connect-hubspot/src/api/index.ts +379 -0
  152. package/connectors/connect-hubspot/src/cli/index.ts +589 -0
  153. package/connectors/connect-hubspot/src/index.ts +21 -0
  154. package/connectors/connect-hubspot/src/types/index.ts +285 -0
  155. package/connectors/connect-hubspot/src/utils/config.ts +205 -0
  156. package/connectors/connect-hubspot/src/utils/output.ts +119 -0
  157. package/connectors/connect-hubspot/tsconfig.json +16 -0
  158. package/connectors/connect-intercom/.env.example +11 -0
  159. package/connectors/connect-intercom/CLAUDE.md +131 -0
  160. package/connectors/connect-intercom/README.md +193 -0
  161. package/connectors/connect-intercom/package.json +52 -0
  162. package/connectors/connect-intercom/src/api/client.ts +132 -0
  163. package/connectors/connect-intercom/src/api/index.ts +366 -0
  164. package/connectors/connect-intercom/src/cli/index.ts +831 -0
  165. package/connectors/connect-intercom/src/index.ts +21 -0
  166. package/connectors/connect-intercom/src/types/index.ts +650 -0
  167. package/connectors/connect-intercom/src/utils/config.ts +157 -0
  168. package/connectors/connect-intercom/src/utils/output.ts +119 -0
  169. package/connectors/connect-intercom/tsconfig.json +16 -0
  170. package/connectors/connect-lemonsqueezy/.env.example +11 -0
  171. package/connectors/connect-lemonsqueezy/CLAUDE.md +128 -0
  172. package/connectors/connect-lemonsqueezy/README.md +193 -0
  173. package/connectors/connect-lemonsqueezy/package.json +52 -0
  174. package/connectors/connect-lemonsqueezy/src/api/client.ts +133 -0
  175. package/connectors/connect-lemonsqueezy/src/api/index.ts +502 -0
  176. package/connectors/connect-lemonsqueezy/src/cli/index.ts +723 -0
  177. package/connectors/connect-lemonsqueezy/src/index.ts +21 -0
  178. package/connectors/connect-lemonsqueezy/src/types/index.ts +353 -0
  179. package/connectors/connect-lemonsqueezy/src/utils/config.ts +205 -0
  180. package/connectors/connect-lemonsqueezy/src/utils/output.ts +119 -0
  181. package/connectors/connect-lemonsqueezy/tsconfig.json +16 -0
  182. package/connectors/connect-linkedin/.env.example +11 -0
  183. package/connectors/connect-linkedin/CLAUDE.md +124 -0
  184. package/connectors/connect-linkedin/README.md +193 -0
  185. package/connectors/connect-linkedin/package.json +52 -0
  186. package/connectors/connect-linkedin/src/api/client.ts +132 -0
  187. package/connectors/connect-linkedin/src/api/index.ts +313 -0
  188. package/connectors/connect-linkedin/src/cli/index.ts +548 -0
  189. package/connectors/connect-linkedin/src/index.ts +21 -0
  190. package/connectors/connect-linkedin/src/types/index.ts +472 -0
  191. package/connectors/connect-linkedin/src/utils/config.ts +157 -0
  192. package/connectors/connect-linkedin/src/utils/output.ts +119 -0
  193. package/connectors/connect-linkedin/tsconfig.json +16 -0
  194. package/connectors/connect-mailchimp/.env.example +11 -0
  195. package/connectors/connect-mailchimp/CLAUDE.md +127 -0
  196. package/connectors/connect-mailchimp/README.md +193 -0
  197. package/connectors/connect-mailchimp/package.json +52 -0
  198. package/connectors/connect-mailchimp/src/api/client.ts +162 -0
  199. package/connectors/connect-mailchimp/src/api/index.ts +580 -0
  200. package/connectors/connect-mailchimp/src/cli/index.ts +822 -0
  201. package/connectors/connect-mailchimp/src/index.ts +23 -0
  202. package/connectors/connect-mailchimp/src/types/index.ts +585 -0
  203. package/connectors/connect-mailchimp/src/utils/config.ts +208 -0
  204. package/connectors/connect-mailchimp/src/utils/output.ts +119 -0
  205. package/connectors/connect-mailchimp/tsconfig.json +16 -0
  206. package/connectors/connect-mongodb/.env.example +11 -0
  207. package/connectors/connect-mongodb/CLAUDE.md +272 -0
  208. package/connectors/connect-mongodb/README.md +193 -0
  209. package/connectors/connect-mongodb/package.json +51 -0
  210. package/connectors/connect-mongodb/scripts/release.ts +179 -0
  211. package/connectors/connect-mongodb/src/api/client.ts +213 -0
  212. package/connectors/connect-mongodb/src/api/example.ts +48 -0
  213. package/connectors/connect-mongodb/src/api/index.ts +51 -0
  214. package/connectors/connect-mongodb/src/cli/index.ts +254 -0
  215. package/connectors/connect-mongodb/src/index.ts +103 -0
  216. package/connectors/connect-mongodb/src/types/index.ts +237 -0
  217. package/connectors/connect-mongodb/src/utils/auth.ts +274 -0
  218. package/connectors/connect-mongodb/src/utils/bulk.ts +212 -0
  219. package/connectors/connect-mongodb/src/utils/config.ts +326 -0
  220. package/connectors/connect-mongodb/src/utils/output.ts +175 -0
  221. package/connectors/connect-mongodb/src/utils/settings.ts +114 -0
  222. package/connectors/connect-mongodb/src/utils/storage.ts +198 -0
  223. package/connectors/connect-mongodb/tsconfig.json +16 -0
  224. package/connectors/connect-netlify/.env.example +11 -0
  225. package/connectors/connect-netlify/CLAUDE.md +170 -0
  226. package/connectors/connect-netlify/README.md +193 -0
  227. package/connectors/connect-netlify/package.json +53 -0
  228. package/connectors/connect-netlify/src/api/client.ts +132 -0
  229. package/connectors/connect-netlify/src/api/index.ts +533 -0
  230. package/connectors/connect-netlify/src/cli/index.ts +985 -0
  231. package/connectors/connect-netlify/src/index.ts +22 -0
  232. package/connectors/connect-netlify/src/types/index.ts +423 -0
  233. package/connectors/connect-netlify/src/utils/config.ts +171 -0
  234. package/connectors/connect-netlify/src/utils/output.ts +119 -0
  235. package/connectors/connect-netlify/tsconfig.json +16 -0
  236. package/connectors/connect-paypal/.env.example +11 -0
  237. package/connectors/connect-paypal/CLAUDE.md +128 -0
  238. package/connectors/connect-paypal/README.md +193 -0
  239. package/connectors/connect-paypal/package.json +51 -0
  240. package/connectors/connect-paypal/src/api/client.ts +182 -0
  241. package/connectors/connect-paypal/src/api/index.ts +235 -0
  242. package/connectors/connect-paypal/src/cli/index.ts +559 -0
  243. package/connectors/connect-paypal/src/index.ts +23 -0
  244. package/connectors/connect-paypal/src/types/index.ts +377 -0
  245. package/connectors/connect-paypal/src/utils/config.ts +125 -0
  246. package/connectors/connect-paypal/src/utils/output.ts +119 -0
  247. package/connectors/connect-paypal/tsconfig.json +16 -0
  248. package/connectors/connect-pinterest/.env.example +11 -0
  249. package/connectors/connect-pinterest/CLAUDE.md +115 -0
  250. package/connectors/connect-pinterest/README.md +193 -0
  251. package/connectors/connect-pinterest/package.json +52 -0
  252. package/connectors/connect-pinterest/src/api/client.ts +125 -0
  253. package/connectors/connect-pinterest/src/api/index.ts +203 -0
  254. package/connectors/connect-pinterest/src/cli/index.ts +653 -0
  255. package/connectors/connect-pinterest/src/index.ts +21 -0
  256. package/connectors/connect-pinterest/src/types/index.ts +268 -0
  257. package/connectors/connect-pinterest/src/utils/config.ts +157 -0
  258. package/connectors/connect-pinterest/src/utils/output.ts +119 -0
  259. package/connectors/connect-pinterest/tsconfig.json +16 -0
  260. package/connectors/connect-posthog/.env.example +11 -0
  261. package/connectors/connect-posthog/CLAUDE.md +272 -0
  262. package/connectors/connect-posthog/README.md +193 -0
  263. package/connectors/connect-posthog/package.json +51 -0
  264. package/connectors/connect-posthog/scripts/release.ts +179 -0
  265. package/connectors/connect-posthog/src/api/client.ts +213 -0
  266. package/connectors/connect-posthog/src/api/example.ts +48 -0
  267. package/connectors/connect-posthog/src/api/index.ts +51 -0
  268. package/connectors/connect-posthog/src/cli/index.ts +254 -0
  269. package/connectors/connect-posthog/src/index.ts +103 -0
  270. package/connectors/connect-posthog/src/types/index.ts +237 -0
  271. package/connectors/connect-posthog/src/utils/auth.ts +274 -0
  272. package/connectors/connect-posthog/src/utils/bulk.ts +212 -0
  273. package/connectors/connect-posthog/src/utils/config.ts +326 -0
  274. package/connectors/connect-posthog/src/utils/output.ts +175 -0
  275. package/connectors/connect-posthog/src/utils/settings.ts +114 -0
  276. package/connectors/connect-posthog/src/utils/storage.ts +198 -0
  277. package/connectors/connect-posthog/tsconfig.json +16 -0
  278. package/connectors/connect-salesforce/.env.example +11 -0
  279. package/connectors/connect-salesforce/CLAUDE.md +128 -0
  280. package/connectors/connect-salesforce/README.md +193 -0
  281. package/connectors/connect-salesforce/package.json +53 -0
  282. package/connectors/connect-salesforce/src/api/client.ts +150 -0
  283. package/connectors/connect-salesforce/src/api/index.ts +367 -0
  284. package/connectors/connect-salesforce/src/cli/index.ts +594 -0
  285. package/connectors/connect-salesforce/src/index.ts +21 -0
  286. package/connectors/connect-salesforce/src/types/index.ts +292 -0
  287. package/connectors/connect-salesforce/src/utils/config.ts +208 -0
  288. package/connectors/connect-salesforce/src/utils/output.ts +119 -0
  289. package/connectors/connect-salesforce/tsconfig.json +16 -0
  290. package/connectors/connect-segment/.env.example +11 -0
  291. package/connectors/connect-segment/CLAUDE.md +272 -0
  292. package/connectors/connect-segment/README.md +193 -0
  293. package/connectors/connect-segment/package.json +51 -0
  294. package/connectors/connect-segment/scripts/release.ts +179 -0
  295. package/connectors/connect-segment/src/api/client.ts +213 -0
  296. package/connectors/connect-segment/src/api/example.ts +48 -0
  297. package/connectors/connect-segment/src/api/index.ts +51 -0
  298. package/connectors/connect-segment/src/cli/index.ts +254 -0
  299. package/connectors/connect-segment/src/index.ts +103 -0
  300. package/connectors/connect-segment/src/types/index.ts +237 -0
  301. package/connectors/connect-segment/src/utils/auth.ts +274 -0
  302. package/connectors/connect-segment/src/utils/bulk.ts +212 -0
  303. package/connectors/connect-segment/src/utils/config.ts +326 -0
  304. package/connectors/connect-segment/src/utils/output.ts +175 -0
  305. package/connectors/connect-segment/src/utils/settings.ts +114 -0
  306. package/connectors/connect-segment/src/utils/storage.ts +198 -0
  307. package/connectors/connect-segment/tsconfig.json +16 -0
  308. package/connectors/connect-sendgrid/.env.example +11 -0
  309. package/connectors/connect-sendgrid/CLAUDE.md +125 -0
  310. package/connectors/connect-sendgrid/README.md +193 -0
  311. package/connectors/connect-sendgrid/package.json +53 -0
  312. package/connectors/connect-sendgrid/src/api/client.ts +137 -0
  313. package/connectors/connect-sendgrid/src/api/index.ts +588 -0
  314. package/connectors/connect-sendgrid/src/cli/index.ts +764 -0
  315. package/connectors/connect-sendgrid/src/index.ts +21 -0
  316. package/connectors/connect-sendgrid/src/types/index.ts +403 -0
  317. package/connectors/connect-sendgrid/src/utils/config.ts +197 -0
  318. package/connectors/connect-sendgrid/src/utils/output.ts +119 -0
  319. package/connectors/connect-sendgrid/tsconfig.json +16 -0
  320. package/connectors/connect-supabase/.env.example +11 -0
  321. package/connectors/connect-supabase/CLAUDE.md +132 -0
  322. package/connectors/connect-supabase/README.md +193 -0
  323. package/connectors/connect-supabase/package.json +52 -0
  324. package/connectors/connect-supabase/src/api/client.ts +231 -0
  325. package/connectors/connect-supabase/src/api/index.ts +439 -0
  326. package/connectors/connect-supabase/src/cli/index.ts +691 -0
  327. package/connectors/connect-supabase/src/index.ts +24 -0
  328. package/connectors/connect-supabase/src/types/index.ts +215 -0
  329. package/connectors/connect-supabase/src/utils/config.ts +219 -0
  330. package/connectors/connect-supabase/tsconfig.json +16 -0
  331. package/connectors/connect-vercel/.env.example +11 -0
  332. package/connectors/connect-vercel/CLAUDE.md +142 -0
  333. package/connectors/connect-vercel/README.md +193 -0
  334. package/connectors/connect-vercel/package.json +52 -0
  335. package/connectors/connect-vercel/src/api/client.ts +139 -0
  336. package/connectors/connect-vercel/src/api/index.ts +384 -0
  337. package/connectors/connect-vercel/src/cli/index.ts +740 -0
  338. package/connectors/connect-vercel/src/index.ts +24 -0
  339. package/connectors/connect-vercel/src/types/index.ts +350 -0
  340. package/connectors/connect-vercel/src/utils/config.ts +182 -0
  341. package/connectors/connect-vercel/src/utils/output.ts +119 -0
  342. package/connectors/connect-vercel/tsconfig.json +16 -0
  343. package/connectors/connect-zendesk/.env.example +10 -0
  344. package/connectors/connect-zendesk/.github/workflows/deploy.yml +51 -0
  345. package/connectors/connect-zendesk/CLAUDE.md +78 -0
  346. package/connectors/connect-zendesk/Makefile +129 -0
  347. package/connectors/connect-zendesk/README.md +295 -0
  348. package/connectors/connect-zendesk/SCAFFOLD.md +178 -0
  349. package/connectors/connect-zendesk/nginx-connector.conf +218 -0
  350. package/connectors/connect-zendesk/nginx.conf +61 -0
  351. package/connectors/connect-zendesk/package.json +71 -0
  352. package/connectors/connect-zendesk/scripts/init.sh +62 -0
  353. package/connectors/connect-zendesk/scripts/publish.ts +210 -0
  354. package/connectors/connect-zendesk/server/index.js +142 -0
  355. package/connectors/connect-zendesk/src/api/automations.ts +95 -0
  356. package/connectors/connect-zendesk/src/api/brands.ts +80 -0
  357. package/connectors/connect-zendesk/src/api/bulk.ts +838 -0
  358. package/connectors/connect-zendesk/src/api/client.test.ts +315 -0
  359. package/connectors/connect-zendesk/src/api/client.ts +173 -0
  360. package/connectors/connect-zendesk/src/api/example.ts +59 -0
  361. package/connectors/connect-zendesk/src/api/groups.ts +60 -0
  362. package/connectors/connect-zendesk/src/api/index.test.ts +111 -0
  363. package/connectors/connect-zendesk/src/api/index.ts +131 -0
  364. package/connectors/connect-zendesk/src/api/macros.ts +124 -0
  365. package/connectors/connect-zendesk/src/api/organizations.ts +85 -0
  366. package/connectors/connect-zendesk/src/api/slas.ts +80 -0
  367. package/connectors/connect-zendesk/src/api/ticket-fields.ts +98 -0
  368. package/connectors/connect-zendesk/src/api/tickets.test.ts +215 -0
  369. package/connectors/connect-zendesk/src/api/tickets.ts +103 -0
  370. package/connectors/connect-zendesk/src/api/triggers.test.ts +204 -0
  371. package/connectors/connect-zendesk/src/api/triggers.ts +125 -0
  372. package/connectors/connect-zendesk/src/api/users.test.ts +180 -0
  373. package/connectors/connect-zendesk/src/api/users.ts +108 -0
  374. package/connectors/connect-zendesk/src/api/views.test.ts +223 -0
  375. package/connectors/connect-zendesk/src/api/views.ts +145 -0
  376. package/connectors/connect-zendesk/src/api/webhooks.test.ts +208 -0
  377. package/connectors/connect-zendesk/src/api/webhooks.ts +118 -0
  378. package/connectors/connect-zendesk/src/cli/index.ts +1478 -0
  379. package/connectors/connect-zendesk/src/index.ts +36 -0
  380. package/connectors/connect-zendesk/src/server/index.ts +204 -0
  381. package/connectors/connect-zendesk/src/types/index.ts +910 -0
  382. package/connectors/connect-zendesk/src/utils/config.test.ts +193 -0
  383. package/connectors/connect-zendesk/src/utils/config.ts +526 -0
  384. package/connectors/connect-zendesk/src/utils/export.ts +338 -0
  385. package/connectors/connect-zendesk/src/utils/logger.ts +105 -0
  386. package/connectors/connect-zendesk/src/utils/output.test.ts +137 -0
  387. package/connectors/connect-zendesk/src/utils/output.ts +119 -0
  388. package/connectors/connect-zendesk/tsconfig.json +31 -0
  389. package/dist/index.js +175 -0
  390. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ import type { ConnectorConfig } from '../types';
2
+ import { ConnectorClient } from './client';
3
+ import { ExampleApi } from './example';
4
+
5
+ /**
6
+ * Main Connector class
7
+ * TODO: Rename to your API name (e.g., Perplexity, Twitter, etc.)
8
+ */
9
+ export class Connector {
10
+ private readonly client: ConnectorClient;
11
+
12
+ // API modules - add more as needed
13
+ public readonly example: ExampleApi;
14
+
15
+ constructor(config: ConnectorConfig) {
16
+ this.client = new ConnectorClient(config);
17
+ this.example = new ExampleApi(this.client);
18
+ }
19
+
20
+ /**
21
+ * Create a client from environment variables
22
+ * TODO: Update env var names for your API
23
+ * Looks for CONNECTOR_API_KEY and optionally CONNECTOR_API_SECRET
24
+ */
25
+ static fromEnv(): Connector {
26
+ const apiKey = process.env.CONNECTOR_API_KEY;
27
+ const apiSecret = process.env.CONNECTOR_API_SECRET;
28
+
29
+ if (!apiKey) {
30
+ throw new Error('CONNECTOR_API_KEY environment variable is required');
31
+ }
32
+ return new Connector({ apiKey, apiSecret });
33
+ }
34
+
35
+ /**
36
+ * Get a preview of the API key (for debugging)
37
+ */
38
+ getApiKeyPreview(): string {
39
+ return this.client.getApiKeyPreview();
40
+ }
41
+
42
+ /**
43
+ * Get the underlying client for direct API access
44
+ */
45
+ getClient(): ConnectorClient {
46
+ return this.client;
47
+ }
48
+ }
49
+
50
+ export { ConnectorClient } from './client';
51
+ export { ExampleApi } from './example';
@@ -0,0 +1,254 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { Connector } from '../api';
5
+ import {
6
+ getApiKey,
7
+ setApiKey,
8
+ clearConfig,
9
+ getConfigDir,
10
+ setProfileOverride,
11
+ getCurrentProfile,
12
+ setCurrentProfile,
13
+ listProfiles,
14
+ createProfile,
15
+ deleteProfile,
16
+ profileExists,
17
+ loadProfile,
18
+ } from '../utils/config';
19
+ import type { OutputFormat } from '../utils/output';
20
+ import { success, error, info, print, warn, setVerboseMode, debug } from '../utils/output';
21
+
22
+ // TODO: Update connector name and version
23
+ const CONNECTOR_NAME = 'connector';
24
+ const VERSION = '0.1.0';
25
+
26
+ const program = new Command();
27
+
28
+ program
29
+ .name(CONNECTOR_NAME)
30
+ .description('API connector CLI - TODO: Add your description')
31
+ .version(VERSION)
32
+ .option('-k, --api-key <key>', 'API key (overrides config)')
33
+ .option('-f, --format <format>', 'Output format (json, pretty)', 'pretty')
34
+ .option('-p, --profile <profile>', 'Use a specific profile')
35
+ .option('-v, --verbose', 'Enable verbose output for debugging')
36
+ .hook('preAction', (thisCommand) => {
37
+ const opts = thisCommand.opts();
38
+
39
+ // Enable verbose mode if flag is set
40
+ if (opts.verbose) {
41
+ setVerboseMode(true);
42
+ debug('Verbose mode enabled');
43
+ }
44
+
45
+ // Set profile override before any command runs
46
+ if (opts.profile) {
47
+ if (!profileExists(opts.profile)) {
48
+ error(`Profile "${opts.profile}" does not exist. Create it with "${CONNECTOR_NAME} profile create ${opts.profile}"`);
49
+ process.exit(1);
50
+ }
51
+ setProfileOverride(opts.profile);
52
+ debug(`Using profile: ${opts.profile}`);
53
+ }
54
+
55
+ // Set API key from flag if provided
56
+ if (opts.apiKey) {
57
+ process.env.CONNECTOR_API_KEY = opts.apiKey;
58
+ debug('API key set from command line flag');
59
+ }
60
+ });
61
+
62
+ // Helper to get output format
63
+ function getFormat(cmd: Command): OutputFormat {
64
+ const parent = cmd.parent;
65
+ return (parent?.opts().format || 'pretty') as OutputFormat;
66
+ }
67
+
68
+ // Helper to get authenticated client
69
+ function getClient(): Connector {
70
+ const apiKey = getApiKey();
71
+ if (!apiKey) {
72
+ error(`No API key configured. Run "${CONNECTOR_NAME} config set-key <key>" or set CONNECTOR_API_KEY environment variable.`);
73
+ process.exit(1);
74
+ }
75
+ return new Connector({ apiKey });
76
+ }
77
+
78
+ // ============================================
79
+ // Profile Commands
80
+ // ============================================
81
+ const profileCmd = program
82
+ .command('profile')
83
+ .description('Manage configuration profiles');
84
+
85
+ profileCmd
86
+ .command('list')
87
+ .description('List all profiles')
88
+ .action(() => {
89
+ const profiles = listProfiles();
90
+ const current = getCurrentProfile();
91
+
92
+ if (profiles.length === 0) {
93
+ info('No profiles found. Use "profile create <name>" to create one.');
94
+ return;
95
+ }
96
+
97
+ success(`Profiles:`);
98
+ profiles.forEach(p => {
99
+ const isActive = p === current ? chalk.green(' (active)') : '';
100
+ console.log(` ${p}${isActive}`);
101
+ });
102
+ });
103
+
104
+ profileCmd
105
+ .command('use <name>')
106
+ .description('Switch to a profile')
107
+ .action((name: string) => {
108
+ if (!profileExists(name)) {
109
+ error(`Profile "${name}" does not exist. Create it with "profile create ${name}"`);
110
+ process.exit(1);
111
+ }
112
+ setCurrentProfile(name);
113
+ success(`Switched to profile: ${name}`);
114
+ });
115
+
116
+ profileCmd
117
+ .command('create <name>')
118
+ .description('Create a new profile')
119
+ .option('--api-key <key>', 'API key')
120
+ .option('--use', 'Switch to this profile after creation')
121
+ .action((name: string, opts) => {
122
+ if (profileExists(name)) {
123
+ error(`Profile "${name}" already exists`);
124
+ process.exit(1);
125
+ }
126
+
127
+ createProfile(name, {
128
+ apiKey: opts.apiKey,
129
+ });
130
+ success(`Profile "${name}" created`);
131
+
132
+ if (opts.use) {
133
+ setCurrentProfile(name);
134
+ info(`Switched to profile: ${name}`);
135
+ }
136
+ });
137
+
138
+ profileCmd
139
+ .command('delete <name>')
140
+ .description('Delete a profile')
141
+ .action((name: string) => {
142
+ if (name === 'default') {
143
+ error('Cannot delete the default profile');
144
+ process.exit(1);
145
+ }
146
+ if (deleteProfile(name)) {
147
+ success(`Profile "${name}" deleted`);
148
+ } else {
149
+ error(`Profile "${name}" not found`);
150
+ process.exit(1);
151
+ }
152
+ });
153
+
154
+ profileCmd
155
+ .command('show [name]')
156
+ .description('Show profile configuration')
157
+ .action((name?: string) => {
158
+ const profileName = name || getCurrentProfile();
159
+ const config = loadProfile(profileName);
160
+ const active = getCurrentProfile();
161
+
162
+ console.log(chalk.bold(`Profile: ${profileName}${profileName === active ? chalk.green(' (active)') : ''}`));
163
+ info(`API Key: ${config.apiKey ? `${config.apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
164
+ });
165
+
166
+ // ============================================
167
+ // Config Commands
168
+ // ============================================
169
+ const configCmd = program
170
+ .command('config')
171
+ .description('Manage CLI configuration (for active profile)');
172
+
173
+ configCmd
174
+ .command('set-key <apiKey>')
175
+ .description('Set API key')
176
+ .action((apiKey: string) => {
177
+ setApiKey(apiKey);
178
+ success(`API key saved to profile: ${getCurrentProfile()}`);
179
+ });
180
+
181
+ configCmd
182
+ .command('show')
183
+ .description('Show current configuration')
184
+ .action(() => {
185
+ const profileName = getCurrentProfile();
186
+ const apiKey = getApiKey();
187
+
188
+ console.log(chalk.bold(`Active Profile: ${profileName}`));
189
+ info(`Config directory: ${getConfigDir()}`);
190
+ info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
191
+ });
192
+
193
+ configCmd
194
+ .command('clear')
195
+ .description('Clear configuration for active profile')
196
+ .action(() => {
197
+ clearConfig();
198
+ success(`Configuration cleared for profile: ${getCurrentProfile()}`);
199
+ });
200
+
201
+ // ============================================
202
+ // Example API Commands - TODO: Replace with your API commands
203
+ // ============================================
204
+ const exampleCmd = program
205
+ .command('example')
206
+ .description('Example API commands (replace with your commands)');
207
+
208
+ exampleCmd
209
+ .command('list')
210
+ .description('List resources')
211
+ .option('-n, --max <number>', 'Maximum results', '10')
212
+ .action(async (opts) => {
213
+ try {
214
+ const client = getClient();
215
+ const result = await client.example.list({ maxResults: parseInt(opts.max) });
216
+ print(result, getFormat(exampleCmd));
217
+ } catch (err) {
218
+ error(String(err));
219
+ process.exit(1);
220
+ }
221
+ });
222
+
223
+ exampleCmd
224
+ .command('get <id>')
225
+ .description('Get a resource by ID')
226
+ .action(async (id: string) => {
227
+ try {
228
+ const client = getClient();
229
+ const result = await client.example.get(id);
230
+ print(result, getFormat(exampleCmd));
231
+ } catch (err) {
232
+ error(String(err));
233
+ process.exit(1);
234
+ }
235
+ });
236
+
237
+ exampleCmd
238
+ .command('create')
239
+ .description('Create a new resource')
240
+ .requiredOption('-n, --name <name>', 'Resource name')
241
+ .action(async (opts) => {
242
+ try {
243
+ const client = getClient();
244
+ const result = await client.example.create({ name: opts.name });
245
+ success('Resource created!');
246
+ print(result, getFormat(exampleCmd));
247
+ } catch (err) {
248
+ error(String(err));
249
+ process.exit(1);
250
+ }
251
+ });
252
+
253
+ // Parse and execute
254
+ program.parse();
@@ -0,0 +1,103 @@
1
+ // Connector API
2
+ // A TypeScript wrapper for your API - TODO: Update description
3
+
4
+ export { Connector } from './api';
5
+ export * from './types';
6
+
7
+ // Re-export individual API classes for advanced usage
8
+ export { ConnectorClient, ExampleApi } from './api';
9
+
10
+ // Export config utilities
11
+ export {
12
+ getApiKey,
13
+ setApiKey,
14
+ getApiSecret,
15
+ setApiSecret,
16
+ getToken,
17
+ setToken,
18
+ getCurrentProfile,
19
+ setCurrentProfile,
20
+ listProfiles,
21
+ createProfile,
22
+ deleteProfile,
23
+ loadProfile,
24
+ saveProfile,
25
+ clearConfig,
26
+ getOAuthConfig,
27
+ setOAuthConfig,
28
+ loadOAuthTokens,
29
+ saveOAuthTokens,
30
+ clearOAuthTokens,
31
+ getAccessToken,
32
+ } from './utils/config';
33
+
34
+ // Export OAuth2 utilities
35
+ export {
36
+ getAuthUrl,
37
+ exchangeCodeForTokens,
38
+ refreshAccessToken,
39
+ startCallbackServer,
40
+ getValidAccessToken,
41
+ isAuthenticated,
42
+ getRedirectUri,
43
+ getRedirectPort,
44
+ type AuthResult,
45
+ type AuthUrlOptions,
46
+ } from './utils/auth';
47
+
48
+ // Export settings utilities
49
+ export {
50
+ loadSettings,
51
+ saveSettings,
52
+ getSetting,
53
+ setSetting,
54
+ resetSettings,
55
+ getDefaultSettings,
56
+ isVerbose,
57
+ needsConfirmation,
58
+ type Settings,
59
+ } from './utils/settings';
60
+
61
+ // Export storage utilities
62
+ export {
63
+ saveEntity,
64
+ getEntity,
65
+ entityExists,
66
+ getAllEntities,
67
+ deleteEntity,
68
+ searchEntities,
69
+ searchEntitiesByText,
70
+ countEntities,
71
+ clearEntities,
72
+ createStorage,
73
+ type Storable,
74
+ } from './utils/storage';
75
+
76
+ // Export bulk operation utilities
77
+ export {
78
+ executeBulk,
79
+ executeSequential,
80
+ chunkArray,
81
+ sleep,
82
+ createProgressReporter,
83
+ formatBulkResult,
84
+ type BulkOperationOptions,
85
+ type BulkOperationResult,
86
+ } from './utils/bulk';
87
+
88
+ // Export output utilities
89
+ export {
90
+ formatOutput,
91
+ success,
92
+ error,
93
+ warn,
94
+ info,
95
+ heading,
96
+ print,
97
+ setVerboseMode,
98
+ isVerboseMode,
99
+ debug,
100
+ debugRequest,
101
+ debugResponse,
102
+ type OutputFormat,
103
+ } from './utils/output';
@@ -0,0 +1,237 @@
1
+ // Scaffold Connector Types
2
+ // Replace CONNECTOR with your API name (e.g., Perplexity, Twitter, etc.)
3
+
4
+ // ============================================
5
+ // Configuration
6
+ // ============================================
7
+
8
+ export interface ConnectorConfig {
9
+ apiKey?: string; // For API key authentication
10
+ token?: string; // Alias for apiKey (some APIs use 'token')
11
+ apiSecret?: string; // Optional - some APIs need only a key
12
+ accessToken?: string; // For OAuth2 authentication
13
+ baseUrl?: string; // Override default base URL
14
+ }
15
+
16
+ // ============================================
17
+ // OAuth2 Types
18
+ // ============================================
19
+
20
+ export interface OAuth2Config {
21
+ clientId: string;
22
+ clientSecret: string;
23
+ redirectUri?: string;
24
+ }
25
+
26
+ export interface OAuth2Tokens {
27
+ accessToken: string;
28
+ refreshToken?: string;
29
+ expiresAt: number;
30
+ tokenType?: string;
31
+ scope?: string;
32
+ }
33
+
34
+ // ============================================
35
+ // Common Types
36
+ // ============================================
37
+
38
+ export type OutputFormat = 'json' | 'pretty';
39
+
40
+ export interface PaginatedResponse<T> {
41
+ data: T[];
42
+ nextToken?: string;
43
+ hasMore: boolean;
44
+ }
45
+
46
+ // ============================================
47
+ // Example Resource Types
48
+ // ============================================
49
+
50
+ // Replace with your API's resource types
51
+ export interface ExampleResource {
52
+ id: string;
53
+ name: string;
54
+ createdAt: string;
55
+ updatedAt: string;
56
+ // Add more fields as needed
57
+ }
58
+
59
+ export interface ExampleListResponse {
60
+ items: ExampleResource[];
61
+ nextPageToken?: string;
62
+ total?: number;
63
+ }
64
+
65
+ export interface ExampleCreateParams {
66
+ name: string;
67
+ // Add more params as needed
68
+ }
69
+
70
+ // ============================================
71
+ // API Error Types
72
+ // ============================================
73
+
74
+ export interface ApiErrorDetail {
75
+ code: string;
76
+ message: string;
77
+ field?: string;
78
+ resource?: string;
79
+ }
80
+
81
+ export class ConnectorApiError extends Error {
82
+ public readonly statusCode: number;
83
+ public readonly errors?: ApiErrorDetail[];
84
+ public readonly documentationUrl?: string;
85
+ public readonly requestId?: string;
86
+
87
+ constructor(
88
+ message: string,
89
+ statusCode: number,
90
+ options?: {
91
+ errors?: ApiErrorDetail[];
92
+ documentationUrl?: string;
93
+ requestId?: string;
94
+ }
95
+ ) {
96
+ super(message);
97
+ this.name = 'ConnectorApiError';
98
+ this.statusCode = statusCode;
99
+ this.errors = options?.errors;
100
+ this.documentationUrl = options?.documentationUrl;
101
+ this.requestId = options?.requestId;
102
+ }
103
+
104
+ /**
105
+ * Check if this is a rate limit error
106
+ */
107
+ isRateLimited(): boolean {
108
+ return this.statusCode === 429;
109
+ }
110
+
111
+ /**
112
+ * Check if this is a server error
113
+ */
114
+ isServerError(): boolean {
115
+ return this.statusCode >= 500 && this.statusCode < 600;
116
+ }
117
+
118
+ /**
119
+ * Check if this is a client error
120
+ */
121
+ isClientError(): boolean {
122
+ return this.statusCode >= 400 && this.statusCode < 500;
123
+ }
124
+
125
+ /**
126
+ * Check if this is an authentication error
127
+ */
128
+ isAuthError(): boolean {
129
+ return this.statusCode === 401 || this.statusCode === 403;
130
+ }
131
+
132
+ /**
133
+ * Check if this is a not found error
134
+ */
135
+ isNotFound(): boolean {
136
+ return this.statusCode === 404;
137
+ }
138
+
139
+ /**
140
+ * Get a user-friendly error message
141
+ */
142
+ getUserMessage(): string {
143
+ switch (this.statusCode) {
144
+ case 400:
145
+ return 'Bad request. Please check your input.';
146
+ case 401:
147
+ return 'Authentication failed. Please check your API key or login again.';
148
+ case 403:
149
+ return 'Access denied. You do not have permission to perform this action.';
150
+ case 404:
151
+ return 'Resource not found.';
152
+ case 429:
153
+ return 'Rate limit exceeded. Please wait and try again.';
154
+ case 500:
155
+ return 'Server error. Please try again later.';
156
+ case 502:
157
+ case 503:
158
+ case 504:
159
+ return 'Service temporarily unavailable. Please try again later.';
160
+ default:
161
+ return this.message;
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Convert to JSON for logging/debugging
167
+ */
168
+ toJSON(): Record<string, unknown> {
169
+ return {
170
+ name: this.name,
171
+ message: this.message,
172
+ statusCode: this.statusCode,
173
+ errors: this.errors,
174
+ documentationUrl: this.documentationUrl,
175
+ requestId: this.requestId,
176
+ };
177
+ }
178
+ }
179
+
180
+ /**
181
+ * Parse an API error response into a ConnectorApiError
182
+ * Handles various common API error response formats
183
+ */
184
+ export function parseApiError(
185
+ response: unknown,
186
+ statusCode: number
187
+ ): ConnectorApiError {
188
+ // Handle string responses
189
+ if (typeof response === 'string') {
190
+ return new ConnectorApiError(response, statusCode);
191
+ }
192
+
193
+ // Handle null/undefined
194
+ if (!response || typeof response !== 'object') {
195
+ return new ConnectorApiError(`HTTP ${statusCode} Error`, statusCode);
196
+ }
197
+
198
+ const data = response as Record<string, unknown>;
199
+
200
+ // Extract message from various common formats
201
+ const message =
202
+ (data.message as string) ||
203
+ (data.error as string) ||
204
+ ((data.error as Record<string, unknown>)?.message as string) ||
205
+ (data.error_description as string) ||
206
+ (data.detail as string) ||
207
+ `HTTP ${statusCode} Error`;
208
+
209
+ // Extract errors array if present
210
+ let errors: ApiErrorDetail[] | undefined;
211
+ if (Array.isArray(data.errors)) {
212
+ errors = data.errors.map((e: Record<string, unknown>) => ({
213
+ code: String(e.code || e.error || 'unknown'),
214
+ message: String(e.message || e.description || 'Unknown error'),
215
+ field: e.field as string,
216
+ resource: e.resource as string,
217
+ }));
218
+ }
219
+
220
+ // Extract documentation URL
221
+ const documentationUrl =
222
+ (data.documentation_url as string) ||
223
+ (data.docs_url as string) ||
224
+ (data.help_url as string);
225
+
226
+ // Extract request ID
227
+ const requestId =
228
+ (data.request_id as string) ||
229
+ (data.requestId as string) ||
230
+ (data.trace_id as string);
231
+
232
+ return new ConnectorApiError(message, statusCode, {
233
+ errors,
234
+ documentationUrl,
235
+ requestId,
236
+ });
237
+ }